我有一個程序,根據某些條件從工作表中收集一些行,然後將選定的行粘貼到新工作表中。在Excel工作表中高效編寫多維變體
我想知道是否可以減少必須在新工作表中寫入選定行的次數。現在我正在逐行進行。
爲了簡單起見,我創建了一個假設的例子。假設我有一個變量數組「表」如下:
Dim table(100) as Variant
For i = 0 To 100
table(i)= Range(Range("A1").offset(i,0), Range("A1").Offset(i, 8)).Value
Next i
現在,如果我想將值粘貼在一個新的工作表,我做的:
Worksheets(2).activate
For i = 0 To 100
Range(Range("A1").offset(i,0), Range("A1").Offset(i, 8)).Value = table(i)
Next i
是否有可能做粘貼在一個單一的步驟?我想知道,因爲我已經發現,如果我創建了一個多維的變體,如
Dim data(100,8) as Variant
data = Range("A1:I100").Value
然後,我可以將此作爲新的工作表
Worksheets(2).activate
Range("A1:I100").Value = data;
的問題在我的節目單步是因爲我根據某些條件將一維水平範圍逐個插入到變體數組中。正如最初所示,我最終得到了一個像'table'這樣的變體數組。是否有可能以某種方式將此錶轉換爲標準的二維數組(如上面所示的「數據」),以便我可以在新工作表中使用單個步驟進行粘貼?
我在VBA方面比較新,在C++方面有一定的經驗。任何幫助將不勝感激。謝謝!
注'(100)'指定了afray的上限,並且For循環的上限是包含性的。因此你的數組有101個元素,for循環循環101次。 (數組的下限由'Option Base'語句確定,通常爲0.) –