ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   for next loops in visual basic excel (https://www.excelbanter.com/excel-programming/420628-next-loops-visual-basic-excel.html)

[email protected]

for next loops in visual basic excel
 
Hi,

I wonder if anyone can explain the following. When I have a very
simple for next loop, for example:

for i=1 to worksheets.count
sheets(i).select
activesheet.name="a" & i
next i

the first time the macro goes through the loop, when you would expect
the value of i to be 1, the value of i is the highest value, i.e.
worksheets.count.

By the way, it does not seem to be consistent. If I stop and restart
the macro, it seems to go through the loop correctly i.e with i
starting from 1.

Can anybody explain how this works to me?

Thanks!

[email protected]

for next loops in visual basic excel
 
Hi
When the loop runs, i will always start at 1. I suspect that you have
stopped the macro or a bug has occurred after the loop has run. If you
then look at the value of i it will show you its last executed value,
which at that point will be worksheets.count.
regards
Paul

On Nov 28, 11:30*am, wrote:
Hi,

I wonder if anyone can explain the following. When I have a very
simple for next loop, for example:

for i=1 to worksheets.count
sheets(i).select
activesheet.name="a" & i
next i

the first time the macro goes through the loop, when you would expect
the value of i to be 1, the value of i is the highest value, i.e.
worksheets.count.

By the way, it does not seem to be consistent. If I stop and restart
the macro, it seems to go through the loop correctly i.e with i
starting from 1.

Can anybody explain how this works to me?

Thanks!



Mike

for next loops in visual basic excel
 
Try this. You dont have to selet the sheet to rename it.
Sub reNameSheets()
Dim ws As Worksheet
Dim i As Long

For Each ws In Worksheets
i = i + 1
ws.Name = "a" & i
Next ws
End Sub

" wrote:

Hi,

I wonder if anyone can explain the following. When I have a very
simple for next loop, for example:

for i=1 to worksheets.count
sheets(i).select
activesheet.name="a" & i
next i

the first time the macro goes through the loop, when you would expect
the value of i to be 1, the value of i is the highest value, i.e.
worksheets.count.

By the way, it does not seem to be consistent. If I stop and restart
the macro, it seems to go through the loop correctly i.e with i
starting from 1.

Can anybody explain how this works to me?

Thanks!


Mike

for next loops in visual basic excel
 
Or use your own code like this
Sub reName()
For i = 1 To Worksheets.Count
Sheets(i).Name = "a" & i
Next i
End Sub

" wrote:

Hi,

I wonder if anyone can explain the following. When I have a very
simple for next loop, for example:

for i=1 to worksheets.count
sheets(i).select
activesheet.name="a" & i
next i

the first time the macro goes through the loop, when you would expect
the value of i to be 1, the value of i is the highest value, i.e.
worksheets.count.

By the way, it does not seem to be consistent. If I stop and restart
the macro, it seems to go through the loop correctly i.e with i
starting from 1.

Can anybody explain how this works to me?

Thanks!



All times are GMT +1. The time now is 12:18 AM.

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