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

Arrays 从电子表格的不同部分在VBA中填充数组,arrays,vba,excel,Arrays,Vba,Excel,我试图根据电子表格中的不同位置填充数组的不同部分 比如说 Dim prices(50) as double prices(0, 1, 2) = Range("i35", "i38") prices(3,4,5,6,7,8) = Range("b7","b12") 我得到了一个错误的维数错误,因为我假设你必须一次填充整个东西。是否有其他语法可以更好地做到这一点,或者它只是VBA的一个限制 每个循环可能有一个循环?但这并没有真正的帮助,因为有很多不同的范围 感谢您的帮助看起来您正试图告诉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数组括号中的数字列表是一个数组中的位置,该数组将接收多个项目

事实并非如此。相反,你一次只能做一件事。例如:

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)或一个50x60单元格的电子表格,其中第一个数字像字母,第二个像编号的行
  • 有些语言支持三维数组-VariableName(x,y,z)。不知道VBA是否有
  • 因此,VBA支持在数组后使用括号中的逗号 但是它意味着与您希望的完全不同的东西(您不能改变这一点):维度的值
  • 因此,您的最后一行代码是在6维宇宙中寻找一些值!所以我们有,高度,宽度,深度,时间,特泽拉特,还有,呃,你在这方面打败了我
你想实现什么目标,也许我们可以通过这种方式更好地帮助您,您是对的,您不能像这样填充数组that@Wabonano我只是在电子表格的奇数部分有很多不同证券的价格。我正在把它们输入到一个优化算法中,但这并不重要。我猜选项是重新格式化工作表,或者只是写出代码。谢谢你的回复。请参阅。它可能会给你一些想法。