从修剪值停止固定宽度的文本到列

时间:2018-07-10 15:35:12

标签: excel excel-vba

我正在寻找一种方法来阻止Excel删除固定宽度分隔的分隔单元格末尾的空格。

我有一个字符串:AB 123.00 CD

我有代码:

Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, Textqualifier:=xlTextQualifierNone, _
    FieldInfo:=Array(Array(0, 2), Array(5, 2), Array(13, 2)) _
    , TrailingMinusNumbers:=True

我希望结果为三列(*表示空格以便于阅读):

1. AB***
2. 123.00**
3. CD

我目前遇到的结果:

1. AB
2. 123.00
3. CD

我不知道如何阻止这种行为。

1 个答案:

答案 0 :(得分:0)

我不太确定是否有办法实现所需的目标,但是一种解决方法是遍历单元格并相应地格式化数据,如下所示,它将遍历A和B列并添加所需的各个空格数:

Sub foo()
Dim LastRow As Long
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    For i = 1 To LastRow
        OldVal = ws.Cells(i, 1).Value
        NewVal = Left(OldVal & "     ", 5)
        ws.Cells(i, 1).Value = NewVal

        OldVal2 = ws.Cells(i, 2).Value
        NewVal2 = Left(OldVal2 & "        ", 8)
        ws.Cells(i, 2).Value = NewVal2
    Next i

End Sub