View Single Post
  #2   Report Post  
Duke Carey
 
Posts: n/a
Default

Your Loop statement is within an If..Then..Else block, so it isn't associated
with the Do While statement. Put an End IF before the Loop

VBA does much better if you don't Select cells - just reference them.
Something like this

Dim rng As Range
Dim i As Integer


With Worksheets("Sheet1").Range("4:4")
i = 1
Do While True
If Not IsEmpty(.Cells(i)) Then
.Cells(i).Resize(10, 1).Copy Sheets("Sheet2").Range("a7").Offset((i -
1) * 10, 0)

Else
Exit Do
End If
i = i + 1
Loop

End With



"steve hobden via OfficeKB.com" wrote:

When trying to loop through code I get a compile error "loop without do".

The code should should start in cell A4 (sheet1), check if its value equals
that in t5 (sheet3). If it does, then it cuts A4:A14(sheet1) and pastes
into a7(sheet2).

It then does the same for B4, C4, D4 etc. and continues until it reaches an
empty cell. See code below

Sheets("sheet1").Select
Range("a4").Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell = Sheets("sheet3").Range("t5") Then
ActiveCell.Select
Selection.Resize(1, 10).Select
Selection.Cut Destination:=Sheets("Sheet2").Range("a7")
Else
ActiveCell.Offset(1, 0).Select
Loop

Eventually I want to change the destination cell for pasting to be "the
first empty cell below A6" rather than "A7", but first things first.

Many thanks

Steve