Loop Within a Loop Problem

D

derrick.perkins

Hi,

I am having trouble with my code. Basically, when I try to launch
this I get an error that says "Do Without Loop". I am a beginner in
coding, and have searched high and low to try to figure this one out
with no avail. Can anyone spot my problem? I think it has to do with
Excel VBA not being able to see the first Do statement.

Thanks in advance,
Derrick

Sub OpenFile()

' Opens Each Cash Sheet Once


Windows("report.xls").Activate
Range("A1").Select

Do
ActiveCell.Offset(0, 3).Select

Dim ColDate As String
Dim WorsheetName As String
ColDate = ActiveCell.Offset(0, -2).Value
WorksheetName = ActiveCell.Offset(0, -3).Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" &
ActiveCell.Value
' Code to preform in each cash sheet below
Dim rngFound As Range
Dim rngLookIn As Range

Set rngLookIn = Range("B6:AC6")

For Each Cell In rngLookIn
If Cell.Value = ColDate Then
Cell.Select
End If

' End Code to preform in each cash sheet Above
ActiveWorkbook.Close True
Do
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value <> ActiveCell.Offset(1, 0)

ActiveCell.Offset(1, -3).Select
Loop Until ActiveCell.Value = ""


End Sub
 
J

John Bundy

Its just the way the code tells you your error has nothing to do with the
loop :) In your case the For/Next loop does not have a Next.
 
D

Dave Peterson

Sometimes when you indent your code, it gets to be a lot easier to find these
kinds of errors--on the other hand, VBA doesn't always give you an error message
that helps you find the real mistake.

In your case, you were missing a "next" for your "For each" line:

Option Explicit
Sub OpenFile()

Dim rngFound As Range
Dim rngLookIn As Range
Dim ColDate As String
Dim WorksheetName As String
Dim cell As Range

' Opens Each Cash Sheet Once

Windows("report.xls").Activate
Range("A1").Select

Do
ActiveCell.Offset(0, 3).Select

ColDate = ActiveCell.Offset(0, -2).Value
WorksheetName = ActiveCell.Offset(0, -3).Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & ActiveCell.Value
'Code to preform in each cash sheet below

Set rngLookIn = Range("B6:AC6")

For Each cell In rngLookIn
If cell.Value = ColDate Then
cell.Select
'stop looking so exit the For??
exit for '<--- added
End If
Next cell '<--- added

' End Code to preform in each cash sheet Above
ActiveWorkbook.Close True
Do
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value <> ActiveCell.Offset(1, 0)

ActiveCell.Offset(1, -3).Select

Loop Until ActiveCell.Value = ""

End Sub

=======
But I'm not sure that's what/where you really wanted it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top