【问题标题】:Nested Loops and If statements嵌套循环和 If 语句
【发布时间】:2015-10-01 23:40:51
【问题描述】:

所以我下面的代码试图在 H 列中找到 WIP。如果我们找到 WIP:复制 3 个单元格并在下一列中复制 10 个单元格,或者在同一行中,或者在下一个可用行中。

由于某种原因,代码仅针对第一个“WIP”值成功运行循环,然后停止运行。有人能看出为什么会这样吗?

谢谢你, 奥利

子 Step1_update()

Dim dblSKU As Double
Dim strDesc As String
Dim strType As String
Dim BrowFin As Integer
Dim Browfin1 As Integer
Dim Counter As Integer
Dim Trowfin As Integer

Counter = 0

Worksheets("Final").Activate

Trowfin = 5
BrowFin = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

    'loop 1
    Do While Trowfin < BrowFin

        'If 1
        If Range("H" & Trowfin).Value = Range("H3").Value Then

             dblSKU = Range("F" & Trowfin).Value
             strDesc = Range("G" & Trowfin).Value
             strType = Range("H" & Trowfin).Value

             Browfin1 = (ActiveSheet.Range("J" & Rows.Count).End(xlUp).Row)

             'If 2
             If Browfin1 > Trowfin Then

                Do While Counter < 15

                    Range("J" & Browfin1).Value = dblSKU
                    Range("K" & Browfin1).Value = strDesc
                    Range("L" & Browfin1).Value = strType

                    Counter = Counter + 1
                    Browfin1 = Browfin1 - 1
                    Trowfin = Trowfin + 1

                Loop

              ElseIf Browfin1 < Trowfin Then

                 Do While Counter < 15

                    Range("J" & Trowfin).Value = dblSKU
                    Range("K" & Trowfin).Value = strDesc
                    Range("L" & Trowfin).Value = strType

                    Counter = Counter + 1
                    Trowfin = Trowfin + 1

                 Loop

                Else

                 Do While Counter < 15

                    Range("J" & Trowfin).Value = dblSKU
                    Range("K" & Trowfin).Value = strDesc
                    Range("L" & Trowfin).Value = strType

                    Counter = Counter + 1
                    Trowfin = Trowfin + 1

                 Loop
                'If 2
                End If


        Else

            Trowfin = Trowfin + 1

        'If 1
        End If

    counter = 0 

    'loop 1
    Loop

End Sub

【问题讨论】:

    标签: vba loops if-statement dummy-variable


    【解决方案1】:

    您可能需要在循环后将计数器重置回 0。否则,下次你再次进入循环时,你已经在 15 岁了。

    【讨论】:

    • 由于某种原因,如果“WIP”显示在另一个“WIP”下方,则只会复制第一个,知道为什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多