我認為這很簡單,但顯然微軟的天才們有不同的想法。
我正在撰寫 Excel VBA 來遍歷 Excel 作業表中的行,并且對于每一行(一個 Range 物件),我想將單元格值提取為一個陣列。我進行了一些搜索,發現了一些根本不直觀的假設解決方案,它們也不起作用。
有沒有人有關于如何做到這一點的建議?
Private Sub Separate_By_DC()
Dim row_ As Range
Dim row_str As String
For Each row_ In ActiveSheet.UsedRange.Rows
Dim arr As Variant
arr = Row_To_Array(row_)
Debug.Print UBound(arr) - LBound(arr) 1
' row_str = Concat_Row(row_)
' Debug.Print row_str
Next row_
End Sub
Private Function Row_To_Array(row_ As Range) As Variant
Row_To_Array = row_.Value
End Function
uj5u.com熱心網友回復:
認為最簡單的方法是:
Sub test()
Dim mArr As Variant
Dim i As Long
mArr = Application.Transpose(Range("A1:A10")) 'Transpoose to make the array one dimensional
'loop through the array
For i = LBound(mArr, 1) To UBound(mArr, 1) 'For one dimensional you can remove ",1"
'do something with mArr value
Cells(i, "C").Value = mArr(i) 'Print the array value
Next i
End Sub
對于二維陣列,您可以通過宣告維度索引來遍歷它:
Dim mArr As Variant
Dim i As Long
mArr = Range("A1:A10") 'Use 2 dimension
'loop through the array
For i = LBound(mArr, 1) To UBound(mArr, 1)
'do something with mArr value
Cells(i, "C").Value = mArr(i, 1)
Next i
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/323724.html
下一篇:忽略特殊字符
