从电子表格的不同部分填充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和呃,你击败了我!