![]() |
Nested Do While Loops
I have been trying to get a nested Do While Loop and I need to find out where
I went wrong. The snippet of the procedure is as follows: Sub control() Dim Target1 As Integer Dim Target2 As Integer Dim TTarget As Integer Dim Net As Integer Dim ExNet As Integer Dim i As Integer Dim j As Integer Dim k As Integer BTarget = Sheets("Sheet1").Range("H3") STarget = Sheets("Sheet1").Range("H4") ExNet = Sheets("Sheet1").Range("N3") TTarget = Target1 + Target2 While TTarget < 0 And i < 100 If TTarget ExNet Then Net = TTarget - ExNet While Net 0 And j < 100 Sheets("Sheet1").Range("G3") = 1 Sheets("Sheet1").Range("G4") = 0 j = j + 1 Wend Else: If ExNet TTarget Then Net = Exnet - TTarget While Net 0 And k < 100 Sheets("Sheet1").Range("G3") = 0 Sheets("Sheet1").Range("G4") = 1 k = k + 1 Wend End If i = i + 1 Wend End If End Sub I placed the i,j, and k just to control the maximum times the loop occurs so that it would not be indefinite. I am getting errors with the 'Wend without While' compile error when the above procedure is run. |
Nested Do While Loops
Just fixing the syntax
Sub control() Dim Target1 As Integer Dim Target2 As Integer Dim TTarget As Integer Dim Net As Integer Dim ExNet As Integer Dim i As Integer Dim j As Integer Dim k As Integer BTarget = Sheets("Sheet1").Range("H3") STarget = Sheets("Sheet1").Range("H4") ExNet = Sheets("Sheet1").Range("N3") TTarget = Target1 + Target2 While TTarget < 0 And i < 100 If TTarget ExNet Then Net = TTarget - ExNet While Net 0 And j < 100 Sheets("Sheet1").Range("G3") = 1 Sheets("Sheet1").Range("G4") = 0 j = j + 1 Wend Else If ExNet TTarget Then Net = ExNet - TTarget While Net 0 And k < 100 Sheets("Sheet1").Range("G3") = 0 Sheets("Sheet1").Range("G4") = 1 k = k + 1 Wend End If i = i + 1 End If Wend End Sub -- __________________________________ HTH Bob "Gum" wrote in message ... I have been trying to get a nested Do While Loop and I need to find out where I went wrong. The snippet of the procedure is as follows: Sub control() Dim Target1 As Integer Dim Target2 As Integer Dim TTarget As Integer Dim Net As Integer Dim ExNet As Integer Dim i As Integer Dim j As Integer Dim k As Integer BTarget = Sheets("Sheet1").Range("H3") STarget = Sheets("Sheet1").Range("H4") ExNet = Sheets("Sheet1").Range("N3") TTarget = Target1 + Target2 While TTarget < 0 And i < 100 If TTarget ExNet Then Net = TTarget - ExNet While Net 0 And j < 100 Sheets("Sheet1").Range("G3") = 1 Sheets("Sheet1").Range("G4") = 0 j = j + 1 Wend Else: If ExNet TTarget Then Net = Exnet - TTarget While Net 0 And k < 100 Sheets("Sheet1").Range("G3") = 0 Sheets("Sheet1").Range("G4") = 1 k = k + 1 Wend End If i = i + 1 Wend End If End Sub I placed the i,j, and k just to control the maximum times the loop occurs so that it would not be indefinite. I am getting errors with the 'Wend without While' compile error when the above procedure is run. |
Nested Do While Loops
i think your last "End If" should come before your last "Wend".
i added more spaces to your coding to indent it in a more exaggerated manner & that's what i come up with. :) susan On Nov 20, 12:14*pm, Gum wrote: I have been trying to get a nested Do While Loop and I need to find out where I went wrong. *The snippet of the procedure is as follows: Sub control() Dim Target1 As Integer Dim Target2 As Integer Dim TTarget As Integer Dim Net As Integer Dim ExNet As Integer Dim i As Integer Dim j As Integer Dim k As Integer BTarget = Sheets("Sheet1").Range("H3") STarget = Sheets("Sheet1").Range("H4") ExNet = Sheets("Sheet1").Range("N3") TTarget = Target1 + Target2 While TTarget < 0 And i < 100 * * If TTarget ExNet Then * * Net = TTarget - ExNet * * While Net 0 And j < 100 * * * * Sheets("Sheet1").Range("G3") = 1 * * * * Sheets("Sheet1").Range("G4") = 0 * * * * j = j + 1 * * Wend * * Else: * * If ExNet TTarget Then * * Net = Exnet - TTarget * * While Net 0 And k < 100 * * * * Sheets("Sheet1").Range("G3") = 0 * * * * Sheets("Sheet1").Range("G4") = 1 * * * * k = k + 1 * * Wend * * End If i = i + 1 Wend End If End Sub I placed the i,j, and k just to control the maximum times the loop occurs so that it would not be indefinite. I am getting errors with the 'Wend without While' compile error when the above procedure is run. |
Nested Do While Loops
If you indent your code, it makes it easier to line up your while/wend and
if/else/end if's. While TTarget < 0 And i < 100 If TTarget ExNet Then Net = TTarget - ExNet While Net 0 And j < 100 Sheets("Sheet1").Range("G3") = 1 Sheets("Sheet1").Range("G4") = 0 j = j + 1 Wend Else If ExNet TTarget Then Net = Exnet - TTarget While Net 0 And k < 100 Sheets("Sheet1").Range("G3") = 0 Sheets("Sheet1").Range("G4") = 1 k = k + 1 Wend End If end if '<-- added i = i + 1 Wend Gum wrote: I have been trying to get a nested Do While Loop and I need to find out where I went wrong. The snippet of the procedure is as follows: Sub control() Dim Target1 As Integer Dim Target2 As Integer Dim TTarget As Integer Dim Net As Integer Dim ExNet As Integer Dim i As Integer Dim j As Integer Dim k As Integer BTarget = Sheets("Sheet1").Range("H3") STarget = Sheets("Sheet1").Range("H4") ExNet = Sheets("Sheet1").Range("N3") TTarget = Target1 + Target2 While TTarget < 0 And i < 100 If TTarget ExNet Then Net = TTarget - ExNet While Net 0 And j < 100 Sheets("Sheet1").Range("G3") = 1 Sheets("Sheet1").Range("G4") = 0 j = j + 1 Wend Else: If ExNet TTarget Then Net = Exnet - TTarget While Net 0 And k < 100 Sheets("Sheet1").Range("G3") = 0 Sheets("Sheet1").Range("G4") = 1 k = k + 1 Wend End If i = i + 1 Wend End If End Sub I placed the i,j, and k just to control the maximum times the loop occurs so that it would not be indefinite. I am getting errors with the 'Wend without While' compile error when the above procedure is run. -- Dave Peterson |
All times are GMT +1. The time now is 03:40 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com