Proper Do Loop Construction

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am trying to obtain the product of column A and B and put it into column
C(axb=value in column C). There are >100 values in column A and B. I set-up
the following but it stops after product(it doesn't loop):
Do Until ActiveCell.Offset(0,-2) = "0"
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(1,0).Select
Exit Do
Loop
Obviously I am new to VB and in need of assistance. W98SE,OfficeXP SBE.
Thankyou
 
Chas,

Get ready to hit yourself in the head! :) You have an Exit Do in your
loop, right before it loops. Blew you right out of the water.
 
Earl Kiosterud said:
Chas,

Get ready to hit yourself in the head! :) You have an Exit Do in your
loop, right before it loops. Blew you right out of the water.

-- Thanks for the fast answer appreciate it. It looks that way so I changed it and
and put the "loop" statement before the" Exit Do" statement,when I run-it I
get a compile error"Exit Do not within Do...Loop"
Earl Kiosterud
www.smokeylake.com/
-------------------------------------------

ChasX said:
I am trying to obtain the product of column A and B and put it into column
C(axb=value in column C). There are >100 values in column A and B. I
set-up
the following but it stops after product(it doesn't loop):
Do Until ActiveCell.Offset(0,-2) = "0"
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(1,0).Select
Exit Do
Loop
Obviously I am new to VB and in need of assistance. W98SE,OfficeXP SBE.
Thankyou
 
Chas,

You don't want the Exit Do statement inside your loop, and it doesn't belong
outside a loop. Get rid of it. Sell it on Ebay. :)
--
Earl Kiosterud
www.smokeylake.com/
-------------------------------------------

ChasX said:
Earl Kiosterud said:
Chas,

Get ready to hit yourself in the head! :) You have an Exit Do in your
loop, right before it loops. Blew you right out of the water.

-- Thanks for the fast answer appreciate it. It looks that way so I
changed it and
and put the "loop" statement before the" Exit Do" statement,when I run-it
I
get a compile error"Exit Do not within Do...Loop"
Earl Kiosterud
www.smokeylake.com/
-------------------------------------------

ChasX said:
I am trying to obtain the product of column A and B and put it into
column
C(axb=value in column C). There are >100 values in column A and B. I
set-up
the following but it stops after product(it doesn't loop):
Do Until ActiveCell.Offset(0,-2) = "0"
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(1,0).Select
Exit Do
Loop
Obviously I am new to VB and in need of assistance. W98SE,OfficeXP
SBE.
Thankyou
 
Hi

Exit do is used to step out of loop before the ending condition is filled.
Like (this is an example only to demonstrate how it works):
....
i=2
Do Until i=1000
Activesheet.Range("C" & i).Formula = "=A" & i & "*B" & i
If ActiveSheet.Range("A" & i)=0 Then Exit Do
i=i+1
Loop
....

Btw. activating cells is time-consuming. Write formulas into cells by
reference only. P.e. you code may be:
....
i=0
Do Until ActiveCell.Offset(i,-2)="0"
ActiveCell.Offset(i,0)="=RC[-2]*RC[-1]"
i=i+1
Loop
 
The error says it perfectly.

That is because you don't need an Exit Do at all, it will exit when the loop
condition is met.

--
HTH

Bob Phillips

ChasX said:
Earl Kiosterud said:
Chas,

Get ready to hit yourself in the head! :) You have an Exit Do in your
loop, right before it loops. Blew you right out of the water.

-- Thanks for the fast answer appreciate it. It looks that way so I
changed it and
and put the "loop" statement before the" Exit Do" statement,when I run-it I
get a compile error"Exit Do not within Do...Loop"
Earl Kiosterud
www.smokeylake.com/
-------------------------------------------

ChasX said:
I am trying to obtain the product of column A and B and put it into column
C(axb=value in column C). There are >100 values in column A and B. I
set-up
the following but it stops after product(it doesn't loop):
Do Until ActiveCell.Offset(0,-2) = "0"
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(1,0).Select
Exit Do
Loop
Obviously I am new to VB and in need of assistance. W98SE,OfficeXP SBE.
Thankyou
 
Thanks everybody for your timely help!
Chas.

Arvi Laanemets said:
Hi

Exit do is used to step out of loop before the ending condition is filled.
Like (this is an example only to demonstrate how it works):
....
i=2
Do Until i=1000
Activesheet.Range("C" & i).Formula = "=A" & i & "*B" & i
If ActiveSheet.Range("A" & i)=0 Then Exit Do
i=i+1
Loop
....

Btw. activating cells is time-consuming. Write formulas into cells by
reference only. P.e. you code may be:
....
i=0
Do Until ActiveCell.Offset(i,-2)="0"
ActiveCell.Offset(i,0)="=RC[-2]*RC[-1]"
i=i+1
Loop


--
Arvi Laanemets
( My real mail address: arvil<at>tarkon.ee )



ChasX said:
I am trying to obtain the product of column A and B and put it into column
C(axb=value in column C). There are >100 values in column A and B. I
set-up
the following but it stops after product(it doesn't loop):
Do Until ActiveCell.Offset(0,-2) = "0"
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
ActiveCell.Offset(1,0).Select
Exit Do
Loop
Obviously I am new to VB and in need of assistance. W98SE,OfficeXP SBE.
Thankyou
 

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

Back
Top