我试图让 A1 到 A6 范围内的单元格达到 18 的长度。
其中的当前值:
A233333
A0399
30000
3993833
11111
22222
Run Code Online (Sandbox Code Playgroud)
请注意,并非单元格中的所有值都具有相同的长度。
我想用空格(“”)填充剩余的长度。所以我写了下面的代码,但它似乎不起作用:
Sub PMAP_BAC_Code()
Dim rCell As Range
Dim rRng As Range
Set rRng = Sheet1.Range("A1:A6")
For Each rCell In rRng.Cells
If Len(xCell) <> 18 Then
xCell.FormulaR1C1 = " "
End If
Next rCell
End Sub
Run Code Online (Sandbox Code Playgroud)
有人能帮助我吗?
为什么不使用Left$("foo" & String$(17," ") ,17)
?
Sub PMAP_BAC_Code()
Dim rCell As Range
Dim rRng As Range
Set rRng = Sheet1.Range("A1:A6")
For Each rCell In rRng.Cells
Const lMY_LENGTH As Long = 18
If Len(rCell) <> lMY_LENGTH Then
rCell.Value2 = IIf(IsNumeric(rCell.Value2), "'", "") & Left$(rCell.Value2 & String$(lMY_LENGTH, " "), lMY_LENGTH)
End If
Next rCell
End Sub
Run Code Online (Sandbox Code Playgroud)
折叠有关数字的评论的反馈,我为数字添加了单引号。不过,其他关于未对齐文本结尾的评论仍然是正确的。