2017-08-30 51 views
0

我想编辑一些VBA代码,当前循环直到某个测试被满足。我想要做的是循环,直到满足两个条件。我很难做到这一点。这是原始代码,它的工作原理。在VBA DO中测试多个标准虽然循环

Loop 
    For j = 1 To 29 
    Increment = Worksheets("Price & Energy Curve").Cells(8 + Start + j, 3).Value 
    l = Int((Worksheets("Capacity").Cells(57 + j, 12).Value) * (-1)/Increment) 
    k = WorksheetFunction.Max((l + 1) * Increment, 0) 
    Worksheets("Capacity").Activate 
    ActiveSheet.Cells(56 + j, 17).Value = k 
    test = ActiveSheet.Cells(57 + j, 13).Value 
    Do While test <> True 
    k = k + Increment 
    ActiveSheet.Cells(56 + j, 17).Value = k 
    test = ActiveSheet.Cells(57 + j, 13).Value 
    Loop 
    Next j 

我想补充的

test = ActiveSheet.Cells(57 + j, 37).Value 

因此额外的测试,当

test = ActiveSheet.Cells(57 + j, 13).Value 

test = ActiveSheet.Cells(57 + j, 37).Value 

为真,则退出循环。

+0

你写的答案在你的问题'如果测试= ActiveSheet.Cells(57 + J,13).value的和测试= ActiveSheet.Cells(57 + J,37) .Value然后退出 – jsotola

回答

0

检查这个循环

Do While test1 <> True Or test2 <> True 
k = k + Increment 
ActiveSheet.Cells(56 + j, 17).Value = k 
test1 = ActiveSheet.Cells(57 + j, 13).Value 
test2 = ActiveSheet.Cells(57 + j, 37).Value 
Loop