从电子表格的不同部分填充VBA中的数组

我试图根据电子表格中的不同位置填充数组的不同部分。

例如

Dim prices(50) as double prices(0, 1, 2) = Range("i35", "i38") prices(3,4,5,6,7,8) = Range("b7","b12") 

我得到一个错误的维数错误,因为我假设你必须一次填充整个事情。 还有另外一种语法可以做得更好,还是仅仅是VBA的限制?

可能每个循环? 但是这并没有什么帮助,因为有很多不同的范围。

谢谢你的帮助

它看起来像你试图告诉VBA数组括号中的数字列表是arrays中的位置,将接收多个项目。

这不是什么。 相反,你一次只能做一个。 例如:

 Dim prices(50) as double ' My range syntax might be wrong here. prices(0) = Range("i35", "i35") prices(1) = Range("i36", "i36") prices(2) = Range("i37", "i37") prices(3) = Range("i38", "i38") 

..等等。 或者,如果你是编程新手,你会发现这非常酷:

 for CounterVariable = 0 to 3 prices(CounterVariable) = Range("i" & 35 + CounterVariable) next CounterVariable 

以机智 …

  • Dim prices(50)定义的数组将具有一个“维度”,就像一条直线。
  • 在电子表格中画一行,长50列。
  • 如果你说Dim prices(50,60)你将有一个二维数组,如笛卡尔平面(x,y)或50×60单元格电子表格,其中第一个数字就像字母,第二个像数字行。
  • 有些语言支持三维数组 – VariableName(x,y,z)。 不知道VBA是否
  • 因此,在VBA支持数组之后在括号中使用逗号,但这意味着完全不同于您希望的(并且您无法更改):维的值。
  • 所以你的最后一行代码是在6维宇宙中寻找一些价值! 所以我们有,高度,宽度,深度,时间,tesseract和呃,你击败了我!