View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Richard Buttrey Richard Buttrey is offline
external usenet poster
 
Posts: 296
Default How to Delete Rows in Excel In a Do Loop

Hi,

No, making r2 relative won't make any difference since the problem is
that you are deleting the r2 range completely.

I don't fully understand your data and where the lines you want to
delete appear, but as a minimum you'll need to re Set range r2 each
time you go through the loop. Hence the

Set r2 = ActiveSheet.Rows("46:52")

needs to be inside the loop, but of course you'll need to work out and
build in which rows are relevant each time, since 46:52 each time
apart from the first pass, will no doubt be incorrect.

I have a lot of similar macros, where a .prn or .txt file that's
imported from another application, needs to have all sorts of banner
headings, column headings, footers and surplus format lines, deleted
to end up with a neat flat database.

After adopting several methids, the approach I've found best is as
follows.

1. Import the data
2. Add a helper column A
3. Work out an Excel formula that will identify whether a particular
row is one you want to keep or not. e.g in A1

=If(and("B1"<"", F1<"----")."Keep","Delete")

and have the macro put this in A1

4. Now copy this formula down column A for the whole database
5. Filter the database on column A for the word "Delete")
6. Delete all the filtered rows
7 Finally unfilter the database, delete column A and Bob's your Uncle
(or whatever is your local equivalent of Job done!)

HTH




On 14 Sep 2006 10:15:04 -0700, "indraneel"
wrote:

hello Richard

i have data such as

Element ID SMAx Smin etc etc (All these being headers )

Then I have data
I get my analysis output in a textpad file from where i import it
It imports the Headers at every page end
This is what i want to delete
and make the data a continuous one
I want to do a DO LOOP because i have say atleast 10 (Textpad pages) of
data per run

And Yes I had commeneted out the selection.delete while testing

Thank you for the help

and i thought on th same lines that the program once it deletes the
lines doesnot recognize the r2 set
a question will it help if i say r2 as a relative reference (dont think
that is going to help)



Thank you and Regards
Indraneel
Richard Buttrey wrote:
I assume you've commented out the Selection.delete whilst testing it.

The reason you get the error message is that once you delete the range
r2, that's it. VBA no longer has a range r2 anymore, hence next time
round the loop when it tries to select r2, it complains.

If you explain in a little more deatil what you're trying to achieve,
no doubt we can help.

Rgds


On 14 Sep 2006 07:50:35 -0700, "indraneel"
wrote:

hello
i need some help with deleting Rows in excel using a do loop

my program looks like this
Sub Cleanup()
Dim r1 As Range
Dim r2 As Range

Set r1 = Cells(6, 2)
Set r2 = ActiveSheet.Rows("46:52")

Do While r1.Value < ""
r2.Select
'Selection.Delete Shift:=xlUp

r2.Font.Bold = True
Set r1 = r1.Offset(47, 0)
Set r2 = r2.Offset(47, 0)

Loop

End Sub


The problem i am having is when i make the things i want to delete bold
they do become bold but when i want to delete those rows it does for
the first row and then stops and says "OBJECT REQUIRED" i known i make
making a mistake in the code somewhere but not getting where


thank you in advance for your help/advice


Regards
Indraneel


__
Richard Buttrey
Grappenhall, Cheshire, UK
__________________________


__
Richard Buttrey
Grappenhall, Cheshire, UK
__________________________