我有一个相当复杂的代码外观,我正在查看多个控制变量。
我收到错误'无效' for'循环控制变量
问题中的一行是
for w(1) = 32 to 127
我对VBA更熟悉,我对此声明没有任何问题。
我猜测它与我在同一棵树中循环w(1),w(2),w(3)等事实有关。我将变量初始化为dim x(10),但也尝试了dim w(),dim w()redim w(10)
有什么想法?它是剧本中一个相当重要的方面;因此,我不愿意将所有w 1,2 ...替换为个别变量
思想?
编辑:
根据评论我应该澄清一些事情:
基本上,我正在使用的系统中存在一个带有ID的字母数字关联,而我也没有使用该密钥。所以我有一个多维的费率数组,用于乘以成本。
我正在做的是通过发票向后工作并匹配具有不同价格的非常微妙差异的材料。 为了简单起见,比如说是一个二维材料,其中AA,AB,... A9都是通过几个乘法因子定价的,这只是2x2网格。因此,基于字符串中的位置维护枢轴点非常重要。对于此代码,您可以使用tier来表示字符串中的字符数(也就是材料的组成有多复杂):
dim x(), w()
for tier = 1 to 2
for w(1) = 32 to 127
x(1)= chr(w(1))
If tier = 2 then
for w(2)= 32 to 127
X(2)=chr(w(2))
next
end if
str = ""
for y = 1 to (tier)
str = trim(str & x(y))
next
'''msgbox str 'debug
next
end if
str = ""
for y = 1 to (tier)
str = trim(str & x(y))
next
'' msgbox str ' debug
next 'tier
这只是一个摘录,我用它来获得没有任何计算结构的基本概念。这实际上是什么不起作用
答案 0 :(得分:1)
错误很明显,您不能使用Array
作为控制变量。 For...Next Statement中的定义更加清晰;
用作循环计数器的数字变量。变量不能是数组元素或用户定义类型的元素。
这是VBA和VBScript之间的主要区别之一。
答案 1 :(得分:-1)
你不会循环通过x(1),x(2)...你写的东西就像这个32(1),33(1)......它是什么类型你的w(1)以及你如何定义他?