Excel VBA 使用 xltextformat 的文本到列
Excel VBA Text-to-column with xltextformat
我正在使用文本到列的功能来拆分从输入框中获取的字符串。如何定义拆分文本的文本格式?此时,文本“3101/09/1”将自动更改为日期格式“01/09/3101”。
我试过如下使用 FieldInfo 函数。
例如如果我只在输入框中输入 2 段:“3101/10/1 2910/09/2”
FieldInfo:=数组(数组(0, 2), 数组(1, 2))
这很好用。
但是,如果我在输入框中输入3段:“3101/10/1 2910/09/2 2910/09/3”
FieldInfo:=数组(数组(0, 2), 数组(1, 2), 数组(2, 2))
这是行不通的。
它给出了类似的东西:
¦ 3 ¦ 1 ¦ 01/10/1 ¦ 02/09/2910 ¦ 03/09/2910 ¦
代码是:
Cells(1, 1).NumberFormat = "@"
Cells(1, 1) = inputBox.Text
Range("A1").TextToColumns Destination:=Range("B1"), Space:=True
最终编辑解决方案:
Dim r As Excel.Range
Dim s() As String
s = Split(inputBox.Text, Chr(32))
Set r = Range("B1").Resize(1, UBound(s) + 1)
r.Value = s
谢谢大家
像这样使用 split
函数可能会有帮助
Dim r As Excel.Range
Dim s() As String
s = Split("3101/10/1 2910/09/2 2910/09/3", Chr(32))
Set r = Range("k1").Resize(1, UBound(s) + 1)
r.value = s
我正在使用文本到列的功能来拆分从输入框中获取的字符串。如何定义拆分文本的文本格式?此时,文本“3101/09/1”将自动更改为日期格式“01/09/3101”。
我试过如下使用 FieldInfo 函数。
例如如果我只在输入框中输入 2 段:“3101/10/1 2910/09/2” FieldInfo:=数组(数组(0, 2), 数组(1, 2)) 这很好用。
但是,如果我在输入框中输入3段:“3101/10/1 2910/09/2 2910/09/3” FieldInfo:=数组(数组(0, 2), 数组(1, 2), 数组(2, 2)) 这是行不通的。 它给出了类似的东西:
¦ 3 ¦ 1 ¦ 01/10/1 ¦ 02/09/2910 ¦ 03/09/2910 ¦
代码是:
Cells(1, 1).NumberFormat = "@"
Cells(1, 1) = inputBox.Text
Range("A1").TextToColumns Destination:=Range("B1"), Space:=True
最终编辑解决方案:
Dim r As Excel.Range
Dim s() As String
s = Split(inputBox.Text, Chr(32))
Set r = Range("B1").Resize(1, UBound(s) + 1)
r.Value = s
谢谢大家
像这样使用 split
函数可能会有帮助
Dim r As Excel.Range
Dim s() As String
s = Split("3101/10/1 2910/09/2 2910/09/3", Chr(32))
Set r = Range("k1").Resize(1, UBound(s) + 1)
r.value = s