【发布时间】:2014-12-22 14:20:47
【问题描述】:
我有什么
让我们举一个有效的代码示例。
Sub Sample()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Columns(1).TextToColumns _
Destination:=Range("A1"), _
DataType:=xlFixedWidth, _
FieldInfo:=Array( _
Array(0, 1), Array(60, 1), Array(120, 1), Array(180, 1), _
Array(240, 1), Array(300, 1), Array(360, 1), Array(420, 1) _
), _
TrailingMinusNumbers:=True
End Sub
我想要什么
在一小部分数据中,上面的代码有效。但是如果我想上去说Array(2700,1)呢?这意味着我必须写 46 次 Array(0, 1), Array(60, 1)...Array(1080, 1)....Array(2700, 1)
我的尝试
我尝试过使用这种方法
Sub Sample()
Dim ws As Worksheet
Dim MyArray
Dim MyStr As String
Dim i As Long
For i = 0 To 2700 Step 60
MyStr = MyStr & "#" & "Array(" & i & ",1)"
Next i
MyStr = Mid(MyStr, 2)
MyArray = Split(MyStr, "#")
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Columns(1).TextToColumns _
Destination:=Range("A1"), _
DataType:=xlFixedWidth, _
FieldInfo:=MyArray, _
TrailingMinusNumbers:=True
End Sub
显然这不起作用,因为Array(i,1) 以字符串形式存储在MyArray 中。
我的问题
有什么方法可以在循环中创建这种锯齿状数组,这样我所要做的就是说FieldInfo:=MyArray
【问题讨论】:
标签: vba excel jagged-arrays