将数组复制到单元格范围内

时间:2016-03-09 15:13:14

标签: excel vba

我想将数组mastersheet()的值复制到一系列相同大小的单元格上。

Dim mastersheet() As Variant最初被声明为变体 ReDim mastersheet(1, 1, 1, 1)

最终在代码中它有4个“列”或维度。 wbmastersheet.Worksheets(1).range("A1:D" & UBound(mastersheet, 4)) = mastersheet()

最终在第2列或第二维中添加字符串。并非所有列都具有相同的数据类型。

{{1}}

我收到以下错误

  

错误13:类型不匹配

任何人都可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您似乎将排名与实际维度混淆。

重写您的代码,以便主表为1到 x ,1到4.将值放入数组中,

redim mastersheet(1 to 2, 1 to 4)
mastersheet(1, 1) = "A1"
mastersheet(1, 2) = "B1"
mastersheet(1, 3) = "C1"
mastersheet(1, 4) = "D1"
mastersheet(2, 1) = "A2"
mastersheet(2, 2) = "B2"
mastersheet(2, 3) = "C2"
mastersheet(2, 4) = "D2"

将值写回工作表,如下所示,

wbmastersheet.Worksheets(1).range("A1").Resize(UBound(mastersheet, 1), UBound(mastersheet, 2)) = mastersheet