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
任何帮助,将不胜感激!
这需要通用性如何?没有直接的方法来使用'='就像你试过的一样,所以你可能需要编写一个辅助函数。函数的复杂程度取决于** 1这样的东西**你能否始终保证范围将有正确的行数/列数** 2是否数组的大小总是相同** 3.同一行上的单元格总是触摸等等。如果它总是和你的例子一样简单,那么分别分配3行就行(如Domenic的答案) – Wolfie