使用if语句vba嵌套的while循环只打印第一个“TRUE”值并停止

时间:2015-12-09 16:09:20

标签: excel vba excel-vba if-statement do-while

我正在尝试创建一个Do While循环,其中包含一个if语句。根据If语句的TRUE / FALSE值,它可以进入另一个(子)Do While循环,或者只是循环回到第一个循环,然后重新开始。

我的问题是,一旦If语句返回“TRUE”值,宏就会执行结果但是会停止我想要继续的第一个覆盖Do While循环。 (基本上,一旦If语句中存在TRUE值,它就不会为x + 1生成另一个循环)

提前感谢您的帮助

'x is row in input tab
Dim x As Integer
'z is column in input tab
Dim z As Integer

x = 9
Do While x < 59
If Sheets("Input Tool (Auction Team)").Cells(x, "C") = "N" And Cells(x, "D") = "Yes" Then

    'insert row and add values
    Sheets("Round Results (Auction Team)").Range("C13").EntireRow.Insert
    z = 5

    Do While z < 19

    Sheets("Input Tool (Auction Team)").Cells(x, z).Copy
    Sheets("Round Results (Auction Team)").Cells(13, z - 2).PasteSpecial Paste:=xlPasteValues
    Sheets("Round Results (Auction Team)").Cells(14, z - 2).Copy
    Sheets("Round Results (Auction Team)").Cells(13, z - 2).PasteSpecial Paste:=xlPasteFormats
    Sheets("Round Results (Auction Team)").Cells(14, 2).Copy Cells(13, 2)

    z = z + 1

    Loop                  
Else 
End If
x = x + 1
Loop
End Sub

1 个答案:

答案 0 :(得分:1)

使用其父对象限定不合格的对象引用。

例如,我看到'Cells(x,“ D”)'。将该范围限定为父级工作表,如下所示:

Sheets("Input Tool (Auction Team)").Cells(x,"D")