activecell.offset question

S

SteveDB1

Hi all.
I'm tinkering with an idea for a macro and was able to create the following.
-----------------
For i = 0 To 30
Selection.Copy
ActiveCell.Offset(rowoffset:=4, columnoffset:=0).Activate
ActiveSheet.Paste
Next i
End
--------------------
It's supposed to copy an initial merged cell with contents, and then jump
down to the next merged cell group (each merged cell group is 2 rows, 1
column).
It runs for 30 iterations, and then stops.
When I tried it I noticed that starting with row 25, it jumps one row, does
the two row paste, jumps a row, does two, etc... out to the 30 iteration end.
i.e.,
copy rows 1/2, jumps two rows, pastes 5/6, jumps to 9/10 & pastes, jumps two
rows & pastes... etc.. out to rows 21/22. Then at row 25, it jumps over that,
and pastes every 5th row.
What have I done wrong?
The code you see above is exactly what I'm running.
 
J

JLGWhiz

Working with merged cells is a little tricky. Here is an example
of how to walk it down the range. Using the select and activate
will cause you problems. You can use the i variable to set your
row numbers for the range you want to cover and specify the
column as I have done below. Then use the offset. bearing in
mind that the numbers in parentheses count from the specified
range down and right for positive numbers and up and left for
negative numbers. The step 2 causes it to only execute on the
merged cell one time. You will need to modify this to meet your
needs.

Sub luptst()
For i = 1 To 8 Step 2
Range("A" & i).Copy
Range("A" & i).Offset(4, 1).PasteSpecial Paste:=xlPasteValues
Next
End Sub
 

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

Top