下面的代码对我来说运行完美,除了一个细节。我的所有数据都以正确的格式显示在相应的列中,但 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