我从日志文件中获取了一些值,并希望在&#34 ;;"时将它们分开。出现!
这是我得到的代码
Sub ClearTextToColumns()
On Error Resume Next
If IsEmpty(Range("A1")) Then Range("A1") = "XYZZY"
Range("A1").Select
Dim Time As Range
Set Time = Range(ActiveCell, ActiveCell.Offset(0, 0))
Do Until IsEmpty(ActiveCell)
Range("A1").TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=True, _
OtherChar:=";"
If Range("A1") = "XYZZY" Then Range("A1") = ""
If Err.Number <> 0 Then MsgBox Err.Description
ActiveCell.Offset(1, 0).Select
Set newRange = Range(ActiveCell, ActiveCell.Offset(0, 0))
MsgBox newRange.Address
Loop
End Sub
只有A1行被修复....试图交换&#34; A1&#34;与时间范围,但没有任何奇迹...
答案 0 :(得分:0)
我添加了评论,但也会添加一个答案,这将解决只有A1转换为列的问题。
您只需要确保要转换的整个范围都包含在.TextToColumns
方法中。
您可以使用以下代码为其提供可变范围:
Sub split_text()
Dim lrow As Long
lrow = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(1, 1), Cells(lrow, 1)).TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Semicolon:=True, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
End Sub