Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default improve DeleteBlankRows()

I was using Pearson's DeleteBlankRows() function, but I found a minor
issue. The problem is that if your sheet has blank rows at the top,
they don't get deleted. I believe the problem is that

Set Rng = ActiveSheet.UsedRange.Rows

does not include the blank rows at the top (since they are not
considered "UsedRange"). I think the fix is to modify the Set Rng line
to include those blank rows. I'm not familiar with the objects and
properties, so can someone help me come up with the most elegant way to
do this? Conceptually, this is what I want to do:

Set Rng = ActiveSheet.(A1 to LastCellOfUsedRange).Rows


http://www.cpearson.com/excel/deleti...eleteBlankRows

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,123
Default improve DeleteBlankRows()

Hi Bucky

Try this one


Sub Example1()
Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView

Firstrow = ActiveSheet.UsedRange.Cells(1).Row
Lastrow = ActiveSheet.UsedRange.Rows.Count + Firstrow - 1

With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To 1 Step -1

If Application.CountA(.Rows(Lrow)) = 0 Then .Rows(Lrow).Delete
'This will delete the row if the whole row is empty (all columns)

Next
End With

ActiveWindow.View = ViewMode
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End Sub


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Bucky" wrote in message oups.com...
I was using Pearson's DeleteBlankRows() function, but I found a minor
issue. The problem is that if your sheet has blank rows at the top,
they don't get deleted. I believe the problem is that

Set Rng = ActiveSheet.UsedRange.Rows

does not include the blank rows at the top (since they are not
considered "UsedRange"). I think the fix is to modify the Set Rng line
to include those blank rows. I'm not familiar with the objects and
properties, so can someone help me come up with the most elegant way to
do this? Conceptually, this is what I want to do:

Set Rng = ActiveSheet.(A1 to LastCellOfUsedRange).Rows


http://www.cpearson.com/excel/deleti...eleteBlankRows



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default improve DeleteBlankRows()

Ron de Bruin wrote:
Firstrow = ActiveSheet.UsedRange.Cells(1).Row
Lastrow = ActiveSheet.UsedRange.Rows.Count + Firstrow - 1


Thanks, I basically used that idea. But I wanted to keep the rest of
the code intact, so this is the section that sets the range from A1 to
the last used cell.

lastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell) .Row
lastCol = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell) .Column
Set Rng = ActiveSheet.Range(Cells(1, 1), Cells(lastRow, lastCol))

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Help improve mySchedule Please StevenPar Excel Discussion (Misc queries) 0 October 23rd 05 06:29 AM
Can you help me to improve this macro? Dario de Judicibus[_3_] Excel Programming 5 June 15th 05 10:59 AM
Improve code Gareth Excel Programming 5 April 20th 05 03:41 PM
How to improve visuality? Metallo[_3_] Excel Programming 6 October 8th 04 06:13 AM
How to improve this code? alainB[_21_] Excel Programming 4 May 22nd 04 11:20 AM


All times are GMT +1. The time now is 11:49 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"