Excel vba向单元格添加空格以达到一定长度

F0l*_*l0w 1 excel vba

我试图让 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)

有人能帮助我吗?

S M*_*den 5

为什么不使用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)

折叠有关数字的评论的反馈,我为数字添加了单引号。不过,其他关于未对齐文本结尾的评论仍然是正确的。