Excel VBA - 字符串填充不起作用
Excel VBA - String padding not working
我有一个 VBA 函数,returns 有很多关于它 运行 所在计算机的信息。我想整齐地格式化输出,标题 left-justified 和结果都在右边整齐的一行上标记。
这是我认为可行的方法,这是我咨询过的许多网站上的解决方案:
AllInfo = _
"Date/Time Opened:" & Space(33 - Len("Date/Time Opened:")) & Now() & vbCrLf & _
"Filename:" & Space(33 - Len("Filename:")) & Application.ActiveWorkbook.Name & vbCrLf & _
"Name in Cell B2:" & Space(33 - Len("Name in Cell B2:")) & Cells(2, 2).Value & vbCrLf & _
但是消息框和电子邮件 body 中的输出是参差不齐的。当然,标题都排在左边,但结果排得不太好。
谁能看出我做错了什么?
您在计算要添加的空格数时未包括字符串变量。
AllInfo = _
"Date/Time Opened:" & Space(33 - Len("Date/Time Opened:" & Now())) & Now() & vbLf & _
"Filename:" & Space(33 - Len("Filename:" & Application.ActiveWorkbook.Name)) & Application.ActiveWorkbook.Name & vbLf & _
"Name in Cell B2:" & Space(33 - Len("Name in Cell B2:" & Cells(2, 2).Value)) & Cells(2, 2).Value & vbLf & _
(etc)
我也把你的vbCRLF改成了vbLF;这可能正确也可能不正确。
这个有效:
Sub djfsdf()
allinfo = _
"Date/Time Opened:" & Space(33 - Len("Date/Time Opened:")) & Now() & vbCrLf & _
"Filename:" & Space(33 - Len("Filename:")) & Application.ActiveWorkbook.Name & vbCrLf & _
"Name in Cell B2:" & Space(33 - Len("Name in Cell B2:")) & Cells(2, 2).Value
Cells(3, 3) = allinfo
End Sub
使用正确的字体:
我有一个 VBA 函数,returns 有很多关于它 运行 所在计算机的信息。我想整齐地格式化输出,标题 left-justified 和结果都在右边整齐的一行上标记。
这是我认为可行的方法,这是我咨询过的许多网站上的解决方案:
AllInfo = _
"Date/Time Opened:" & Space(33 - Len("Date/Time Opened:")) & Now() & vbCrLf & _
"Filename:" & Space(33 - Len("Filename:")) & Application.ActiveWorkbook.Name & vbCrLf & _
"Name in Cell B2:" & Space(33 - Len("Name in Cell B2:")) & Cells(2, 2).Value & vbCrLf & _
但是消息框和电子邮件 body 中的输出是参差不齐的。当然,标题都排在左边,但结果排得不太好。
谁能看出我做错了什么?
您在计算要添加的空格数时未包括字符串变量。
AllInfo = _
"Date/Time Opened:" & Space(33 - Len("Date/Time Opened:" & Now())) & Now() & vbLf & _
"Filename:" & Space(33 - Len("Filename:" & Application.ActiveWorkbook.Name)) & Application.ActiveWorkbook.Name & vbLf & _
"Name in Cell B2:" & Space(33 - Len("Name in Cell B2:" & Cells(2, 2).Value)) & Cells(2, 2).Value & vbLf & _
(etc)
我也把你的vbCRLF改成了vbLF;这可能正确也可能不正确。
这个有效:
Sub djfsdf()
allinfo = _
"Date/Time Opened:" & Space(33 - Len("Date/Time Opened:")) & Now() & vbCrLf & _
"Filename:" & Space(33 - Len("Filename:")) & Application.ActiveWorkbook.Name & vbCrLf & _
"Name in Cell B2:" & Space(33 - Len("Name in Cell B2:")) & Cells(2, 2).Value
Cells(3, 3) = allinfo
End Sub
使用正确的字体: