【问题标题】:More Multidimensional Array Issues更多多维数组问题
【发布时间】: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


【解决方案1】:

根据 cmets,只有当 v 的值为 1 时,内循环内部的代码才应该运行。它应该像完全消除内循环并硬编码值“1”一样简单:

For o = LBound(Cbox, 1) To UBound(Cbox, 1)
    '...
    If CCount >= Round(CLng(CNLP) / 2 + 0.000001, 0) And DCount = 1 Then
        Cbox(o, 1) = "Green"
        If CTCombo = "9 W" Then
            AXWCount = WCount / 2
            WH.Value = Ceiling(AXWCount, 9)
        Else
            WH.Value = WCount
        End If
    End If
Next o

【讨论】:

  • AAAaaaa当然最简单的答案就是事实证明。我是个大白痴 O_o 谢谢
猜你喜欢
  • 2014-01-12
  • 2011-04-24
  • 2018-01-05
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多