【发布时间】:2016-07-22 10:04:51
【问题描述】:
我正在尝试根据条件填充数组,似乎我的示例代码将值粘贴在错误的位置。我包括了它被改变的位置。我尝试做一些基本的 +1/-1 修复,但到目前为止,所有这些努力都放错了地方或返回了各种其他错误。
更清楚一点 - 问题是在 v 循环中,值被卡在 (o,0) 位置而不是 (o,v) 位置(覆盖之前的值)。
我认为我的结构方式会为每个循环执行 o 的条件,然后检查 v 的条件,然后当 v 将循环时,将在 v 位置输入等于 o 的当前值的值?
我显然遗漏了一些东西,任何正确方向的指针都将不胜感激
Dim Cbox(9, 1)
For o = LBound(Cbox, 1) To UBound(Cbox, 1)
If LPDif2 = 0 Then
Cbox(o, 0) = 0
ElseIf LPDif2 < 3 And LPDif2 > 0 Then
CCount = CCount + LPDif2
Cbox(o, 0) = LPDif2
Else
CCount = CCount + 3
Cbox(o, 0) = 3
LPDif2 = CNLP - CCount
End If
LPDif2 = CNLP - CCount
If CCount = CNLP Then BCount = BCount + 1
WCount = WCount + CW
If CCount < CNLP And CCount >= Round(CLng(CNLP) / 2 + 0.000001, 0) Then DCount = DCount + 1
If CCount >= CNLP Then DCount = DCount + 2
For v = LBound(Cbox, 2) To UBound(Cbox, 2)
If CCount >= Round(CLng(CNLP) / 2 + 0.000001, 0) And DCount = 1 Then
Cbox(o, v) = "Green"
If CTCombo = "9 W" Then
AXWCount = WCount / 2
WH.Value = Ceiling(AXWCount, 9)
Else
WH.Value = WCount
End If
End If
Next v
Next o
【问题讨论】:
-
请添加有关您的问题的更多详细信息
-
添加了更多细节,对不起,我以为很清楚
-
我猜“随机如果”不是那么随机。 posted 代码所做的只是用“Green”填充一个 10 x 2 数组。如果整个循环都在那里,这将更容易看到发生了什么。
-
公平的给我一秒钟 :)
-
所以,澄清一下,所有条件都正确评估,只是“绿色”存储在数组中的位置不正确。我使用各种 Debug.Print 方法来查明这一点,并评估正在进行的正确计算,它只是我以某种方式对数组部分进行了 fubar:/
标签: vba loops multidimensional-array