Tôi có gìMảng răng cưa trong dữ liệu | Văn bản tới các cột
Hãy lấy một ví dụ về mã này hoạt động.
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
Những gì tôi muốn
Trong một tập nhỏ dữ liệu, các mã trên hoạt động. Nhưng nếu tôi muốn đi lên để nói Array(2700,1)
? Điều này có nghĩa tôi sẽ phải viết nó 46
lần Array(0, 1), Array(60, 1)...Array(1080, 1)....Array(2700, 1)
Những gì tôi đã cố gắng
Tôi đã cố gắng sử dụng phương pháp này
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
Rõ ràng rằng sẽ không làm việc như Array(i,1)
được lưu giữ như là một chuỗi trong .
My Câu hỏi
Có cách nào chúng ta có thể tạo ra loại đó của mảng lởm chởm trong một vòng lặp để tất cả tôi phải làm là nói FieldInfo:=MyArray
Super! Tại sao tôi không nghĩ về điều đó: D –
Cần phải chờ 4 phút trước khi tôi chấp nhận câu trả lời của bạn –
Tôi không biết - Tôi hơi ngạc nhiên;) Tôi có thể chờ ... – Rory