2017-08-14 28 views
2

我試圖將多維數組放入一個範圍。但是,範圍是分割(非連續)範圍,我需要能夠使用.Cells而不是標準.Range("A1")。我的下面的代碼在某種程度上起作用,但是對於聯盟中的每個範圍來說,只能放在數組的前兩個實例中。Excel VBA - 將多維數組轉換爲非連續區域(使用單元格聯合)

請參閱以下內容:

Dim TestArray(1 To 2, 1 To 3) As Integer 
TestArray(1, 1) = 1 
TestArray(2, 1) = 2 
TestArray(1, 2) = 3 
TestArray(2, 2) = 4 
TestArray(1, 3) = 5 
TestArray(2, 3) = 6 

Union(Range(Cells(78, 1), Cells(79, 1)), Range(Cells(78, 4), Cells(79, 4)), _ 
     Range(Cells(78, 6), Cells(79, 6))).Value = TestArray 

我的結果如下:

A78=1  
A79=2  
D78=1  
D79=2  
F78=1  
F79=2 

我要像我的結果:

A78=1  
A79=2  
D78=3  
D79=4  
F78=5  
F79=6 

任何幫助,將不勝感激!

+0

這需要通用性如何?沒有直接的方法來使用'='就像你試過的一樣,所以你可能需要編寫一個輔助函數。函數的複雜程度取決於** 1這樣的東西**你能否始終保證範圍將有正確的行數/列數** 2是否數組的大小總是相同** 3.同一行上的單元格總是觸摸等等。如果它總是和你的例子一樣簡單,那麼分別分配3行就行(如Domenic的答案) – Wolfie

回答

0

嘗試...

Range("A78:A79").Value = Application.Index(TestArray, 0, 1) 
Range("D78:D79").Value = Application.Index(TestArray, 0, 2) 
Range("F78:F79").Value = Application.Index(TestArray, 0, 3) 

希望這有助於!

相關問題