ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Why Loop only happens once? Baffles Me... (https://www.excelbanter.com/excel-programming/297308-why-loop-only-happens-once-baffles-me.html)

Davisro

Why Loop only happens once? Baffles Me...
 
I have a macro I have written as follows that will only loop once once when
run via Excel spreadsheet (ctrl-Shift-r). But if I step through the code
the loop will work just fine and run as many times as needed (423 in this
case)

What am I missing here?


i = 3
Do While i < 423 iSearch = Range("D" & i).Value
With Worksheets("Eff&PerData").Range("D1:D" & iEffRows)
Set c = .Find(iSearch, LookIn:=xlValues)
End With
If c Is Nothing Then
Worksheets("EFF_Place_Holders").Select
Range("A" & i & ":J" & i).Select
Selection.Copy
Worksheets("Eff&PerData").Select
Range("A" & iEffRows).Select
ActiveSheet.Paste
iEffRows = iEffRows + 1
'Not Found
Else
Debug.Print ""
'Found
End If
i = i + 1
Loop
End Sub



libby

Why Loop only happens once? Baffles Me...
 
Hi

I'm not sure exactly what you're trying to do with your
code, but I think your problem may be to do with your If
statement.

it should be

If not c is nothing
'then the code for what you want to happen if does find c
else
'what happens if it doesn't find c
end if

-----Original Message-----
I have a macro I have written as follows that will only

loop once once when
run via Excel spreadsheet (ctrl-Shift-r). But if I step

through the code
the loop will work just fine and run as many times as

needed (423 in this
case)

What am I missing here?


i = 3
Do While i < 423 iSearch = Range("D" & i).Value
With Worksheets("Eff&PerData").Range("D1:D" &

iEffRows)
Set c = .Find(iSearch, LookIn:=xlValues)
End With
If c Is Nothing Then
Worksheets("EFF_Place_Holders").Select
Range("A" & i & ":J" & i).Select
Selection.Copy
Worksheets("Eff&PerData").Select
Range("A" & iEffRows).Select
ActiveSheet.Paste
iEffRows = iEffRows + 1
'Not Found
Else
Debug.Print ""
'Found
End If
i = i + 1
Loop
End Sub


.


Davisro

Why Loop only happens once? Baffles Me...
 
I did make that change to the If statemant.

No Luck. It seems that the loop stops after one iteration when it is
running automatically (F-5, or run from the Excel Worksheet, but if I run it
say manually (f-8) the loop happens just as it is supposed to many times
without stopping.

Rog



"libby" wrote in message
...
Hi

I'm not sure exactly what you're trying to do with your
code, but I think your problem may be to do with your If
statement.

it should be

If not c is nothing
'then the code for what you want to happen if does find c
else
'what happens if it doesn't find c
end if

-----Original Message-----
I have a macro I have written as follows that will only

loop once once when
run via Excel spreadsheet (ctrl-Shift-r). But if I step

through the code
the loop will work just fine and run as many times as

needed (423 in this
case)

What am I missing here?


i = 3
Do While i < 423 iSearch = Range("D" & i).Value
With Worksheets("Eff&PerData").Range("D1:D" &

iEffRows)
Set c = .Find(iSearch, LookIn:=xlValues)
End With
If c Is Nothing Then
Worksheets("EFF_Place_Holders").Select
Range("A" & i & ":J" & i).Select
Selection.Copy
Worksheets("Eff&PerData").Select
Range("A" & iEffRows).Select
ActiveSheet.Paste
iEffRows = iEffRows + 1
'Not Found
Else
Debug.Print ""
'Found
End If
i = i + 1
Loop
End Sub


.





All times are GMT +1. The time now is 06:52 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com