Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
Bob Bob is offline
external usenet poster
 
Posts: 972
Default Need help with For-Next block

I have the following code block:

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Next x
End If
.... more instructions ...
Next x

but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.




  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default Need help with For-Next block

Bob,

Try

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
x=x+1
End If
... more instructions ...
Next x

Mike


"Bob" wrote:

I have the following code block:


but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 638
Default Need help with For-Next block

x will automatically increment wen the Next x line is reached. You do
not need two Next x lines to pull this off.
Do you want to skip over the ...more instructions... portion if the If
statement is true? That's the way I am interpreting it. If so, just
throw in an Else clause and remove the unneeded Next x statement.
For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Else
... more instructions ...
End If
Next x

Bob wrote:
I have the following code block:

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Next x
End If
... more instructions ...
Next x

but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.


  #4   Report Post  
Posted to microsoft.public.excel.programming
Bob Bob is offline
external usenet poster
 
Posts: 972
Default Need help with For-Next block

Mike,
I should have been more clear in my objective. My apologies.

If the IF-block evaluates to True, not only do I need to increment "x" by 1,
but I also need to skip the "... more instructions ..." section, too. That's
the part I'm struggling with.

Thanks again for the help.
Bob


"Mike H" wrote:

Bob,

Try

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
x=x+1
End If
... more instructions ...
Next x

Mike


"Bob" wrote:

I have the following code block:


but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default Need help with For-Next block

Bob,

There will probably be cries of outrage and spaghetti code accusations but
I'd use Goto like this

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Goto 100
End If
.... more instructions ...
100
Next x


X will then increment by 1 when it reaches Next X

Mike

"Bob" wrote:

Mike,
I should have been more clear in my objective. My apologies.

If the IF-block evaluates to True, not only do I need to increment "x" by 1,
but I also need to skip the "... more instructions ..." section, too. That's
the part I'm struggling with.

Thanks again for the help.
Bob


"Mike H" wrote:

Bob,

Try

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
x=x+1
End If
... more instructions ...
Next x

Mike


"Bob" wrote:

I have the following code block:


but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.






  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 638
Default Need help with For-Next block

Not to take anything away from Mike's code, but I still believe that a
simple Else clause is all you need.
Do this if true
Else
Do this if false
Next x

Seems to me to be exactly what you want. See the code I posted
earlier. If I am completely lost, then please set me straight.

Bob wrote:
Mike,
I should have been more clear in my objective. My apologies.

If the IF-block evaluates to True, not only do I need to increment "x" by 1,
but I also need to skip the "... more instructions ..." section, too. That's
the part I'm struggling with.

Thanks again for the help.
Bob


"Mike H" wrote:

Bob,

Try

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
x=x+1
End If
... more instructions ...
Next x

Mike


"Bob" wrote:

I have the following code block:


but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.





  #7   Report Post  
Posted to microsoft.public.excel.programming
Bob Bob is offline
external usenet poster
 
Posts: 972
Default Need help with For-Next block

JW,
Yes, I also wanted to skip over the ...more instructions... portion.
Inserting an Else clause did the trick. (I'm embarrassed that I didn't think
of that.) Thanks for your help!
Bob


"JW" wrote:

x will automatically increment wen the Next x line is reached. You do
not need two Next x lines to pull this off.
Do you want to skip over the ...more instructions... portion if the If
statement is true? That's the way I am interpreting it. If so, just
throw in an Else clause and remove the unneeded Next x statement.
For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Else
... more instructions ...
End If
Next x

Bob wrote:
I have the following code block:

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Next x
End If
... more instructions ...
Next x

but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.



  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default Need help with For-Next block

JW,

I agree your solution is much neater.

Mike

"JW" wrote:

Not to take anything away from Mike's code, but I still believe that a
simple Else clause is all you need.
Do this if true
Else
Do this if false
Next x

Seems to me to be exactly what you want. See the code I posted
earlier. If I am completely lost, then please set me straight.

Bob wrote:
Mike,
I should have been more clear in my objective. My apologies.

If the IF-block evaluates to True, not only do I need to increment "x" by 1,
but I also need to skip the "... more instructions ..." section, too. That's
the part I'm struggling with.

Thanks again for the help.
Bob


"Mike H" wrote:

Bob,

Try

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
x=x+1
End If
... more instructions ...
Next x

Mike


"Bob" wrote:

I have the following code block:


but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.






  #9   Report Post  
Posted to microsoft.public.excel.programming
Bob Bob is offline
external usenet poster
 
Posts: 972
Default Need help with For-Next block

Mike,
I, too, prefer NOT to use Goto. JW suggested using an Else clause which did
the trick. Thanks all the same.
Bob


"Mike H" wrote:

Bob,

There will probably be cries of outrage and spaghetti code accusations but
I'd use Goto like this

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Goto 100
End If
... more instructions ...
100
Next x


X will then increment by 1 when it reaches Next X

Mike

"Bob" wrote:

Mike,
I should have been more clear in my objective. My apologies.

If the IF-block evaluates to True, not only do I need to increment "x" by 1,
but I also need to skip the "... more instructions ..." section, too. That's
the part I'm struggling with.

Thanks again for the help.
Bob


"Mike H" wrote:

Bob,

Try

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
x=x+1
End If
... more instructions ...
Next x

Mike


"Bob" wrote:

I have the following code block:


but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.




  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default Need help with For-Next block

Perhaps...

For x = 1 to 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
x = x +1
Else
... more instructions ...
End If
Next x

"Bob" wrote in message
...
I have the following code block:

For x = 1 To 10
If RowIsBlank(8) = True Then
Application.DisplayAlerts = False
Workbooks(TargetFile(x)).Close
Application.DisplayAlerts = True
Next x
End If
... more instructions ...
Next x

but when I run the code, I receive the expected "Next without For" error
message.
I need to somehow increment "x" when the IF-block evaluates to True. Can
someone kindly tell me how to pull this off?

Thanks in advance for any help.






Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
End if without Block If Carrie_Loos via OfficeKB.com Excel Worksheet Functions 7 May 14th 08 06:47 PM
end if without block if Dirk Nachbar Excel Programming 2 July 20th 07 05:12 PM
End If without Block If Error Help Bull Excel Programming 6 April 30th 07 08:24 PM
if/then block within another if/then block needs a loop Janis Excel Programming 1 September 8th 06 10:01 PM
Block If DA@PD[_2_] Excel Programming 16 December 17th 05 01:57 AM


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"