我正在一個Excel檔案中處理一所大學的教師評價。一行代表一節課程,包含該節的所有學生評論。一節課程的評論數量可以從0開始,并在一列中用tilde("~")分隔符連接起來。
我的任務是做一個文本到列的分離。 我想將其自動化,而不是在選單中使用文本到列。我通過計算每行中的tilde數量找到了所需的列數,并使用最大數量作為我需要創建的列數。
首先,我使用Text to Columns選單功能錄制了一個宏,得到的結果是:
Columns("B:B"/span>).Select
Selection.TextToColumns Destination:=Range("qNine_2[[#Headers],[Q9_1]]"/span>), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _
:=False, Tab:=False, Semicolon: =False, 逗號:=False, 空格:=False, _
Other:=True, OtherChar:="~"/span>, FieldInfo: =Array(Array(1, 1), Array(2, 1), Array _
(3, 1), Array(4, 1)。Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array( _
10, 1), Array(11, 1)。) Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), _
Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
TrailingMinusNumbers:=True)
我的問題是我似乎不能創建一個回圈來填充FieldInfo屬性。
這是我創建的回圈,但它不起作用。qNine_2是資料存在的表,q9_1,是帶有串聯注釋的列,q9_max包含要創建的列數:
Dim FieldValues() As Variant
Dim x As Integer
Dim tempArray(2) As Integer 1) =2
ReDim FieldValues(q9_max)
For x = 0 To q9_max - 1
tempArray(0) = x 1
FieldValues(x) = tempArray
Next x
Columns("B:B").Select
Selection.TextToColumns Destination:=Range("qNine_2[[#Headers],[Q9_1]]"/span>), _
資料型別:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma: =False, Space:=False, Other:=True, OtherChar:="~", _
FieldInfo:=FieldValues, _
TrailingMinusNumbers:=True, _ FieldInfo:=FieldValues, _
我得到。運行時錯誤'13'型別不匹配錯誤
并且除錯器顯示我不明白為什么這不起作用。 據我所知,這不應該是真的嗎?
FieldValues = Array(Array(1, 1), Array(2, 1), Array _
(3, 1), Array(4, 1)。Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array( _
10, 1), Array(11, 1)。) Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), _
Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1)
uj5u.com熱心網友回復:
Sub SplitOnTilde()
Dim FieldValues() As Variant
Dim i As Integer, q9_max As Integer.
q9_max = 10 '數~
ReDim FieldValues(q9_max)
For i = 0 To q9_max
FieldValues(i) = Array(i 1, 2) ' 2-text
下一個
Columns("B:B").Select
Selection.TextToColumns Destination:=Range("qNine_2[[#Headers],[Q9_1]]"/span>), _
資料型別:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, _
Space:=False, Other:=True, OtherChar:="~", _
FieldInfo:=FieldValues, _
TrailingMinusNumbers:=True.
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/332382.html
標籤:
上一篇:使用VBA提取條形碼資料

