VBA 文本到列,xlDMYFormat 仅在一个特定列中

VBA 文本到列,xlDMYFormat 仅在一个特定列中

下面的代码对我来说运行完美,除了一个细节。我的所有数据都以正确的格式显示在相应的列中,但 D 列除外,该列以美国日期格式而不是 DMYFormat 格式显示。我可以在我的代码的哪个位置添加 DMYFormat仅有的D 列?还是我必须使用数组重写我的代码(我没有使用数组的经验)?

任何帮助将非常感激。

我的 A 列中的数据如下:

1111111;23E123000;1;08-09-2023;apple;pear;"banana";mango;kiwi;E_10100100;pos;;;;;;;;;;;;""
Sub TextToCol()

Sheets("ExampleA").Select
Dim ws As Worksheet, lrow As Long
Set ws = ActiveWorkbook.Worksheets("NGSimport")
With ws
    Sheets("ExampleA ").Select
    lrow = .Cells(.Rows.Count, "A").End(xlUp).row
    .Range("A1:A" & lrow).TextToColumns Semicolon:=True 
End With
End Sub

答案1

我最近遇到了类似的问题,下面的内容可能会有所帮助。请注意 D 列的日期格式。

Sub TextToCol()
    Dim ws As Worksheet
    Dim lrow As Long

    Set ws = ActiveWorkbook.Worksheets("NGSimport")

    With ws
        lrow = .Cells(.Rows.Count, "A").End(xlUp).Row
        Set dataRange = .Range("A1:A" & lrow)

        dataRange.TextToColumns _
            Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
            Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, _
            FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, xlDMYFormat)), _
            TrailingMinusNumbers:=True

        .Columns("D").NumberFormat = "DD-MM-YYYY"
    End With
End Sub

相关内容