![]() |
|
|
|
#1
|
|||
|
|||
|
This file in the future will be read-only or as a template.
I need VBA to when saving files (SaveAs) but before saving the macro should delete all blank rows between the two rows containing data. Can anybody help me? Please see attach |
|
#2
|
|||
|
|||
|
I have tried this VBA macro
Code:
Sub Macro3()
'Select empty rows in range and delete them
Range("A10:H50").Select 'this range is the differencing
Selection.SpecialCells(xlCellTypeBlanks).Select 'selecting empty rows
ActiveWindow.SmallScroll Down:=18 '??????
Selection.Delete Shift:=xlUp 'search last row with data?
ActiveWindow.SmallScroll Down:=-27 '????
Range("A1").Select 'position when VBA is finished
End Sub
How to rearrange VBA when I can use for both cases. How to create a universal range and delete "X?" empty rows that change from case to case. |
|
#3
|
||||
|
||||
|
The following will work with your examples:
Code:
Sub DeleteEmptyRows()
Dim rng As Range
Dim i As Long
Dim LastRow As Long
Dim LastCol As Long
With ActiveSheet
LastRow = .Cells(.rows.Count, "G").End(xlUp).Row 'G is the column with the last row of data
LastCol = .Cells(10, .Columns.Count).End(xlToLeft).Column '10 is the first row of the range
Set rng = .Range("A10:H" & LastRow) 'Set the range to the area to be processed
For i = LastRow To 10 Step (-1) 'Process from the bottom
'remove the empty rows
If WorksheetFunction.CountA(rng.rows(i)) = 0 Then rng.rows(i).Delete
Next
End With
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#4
|
|||
|
|||
|
@gmayor thank you for answer
I now see that I was wrong from the start. I did not say formulas that are in range. Therefore, some cells contain formulas that have been copied to the last row in the range. However, I want SaveAs file but before save I want delete the rows that are empty or contain this formula because the formula display zero as a result. Can you rearrange VBA (please you see attachment file) Thanks advance by the way - url link to your website in your signature is incorrect. |
|
#5
|
||||
|
||||
|
It needs a minor adjustment to account for that
:Code:
Sub DeleteEmptyRows()
'Graham Mayor
Dim rng As Range
Dim i As Long
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "G").End(xlUp).Row - 4 'G is the column with the last row of data
Set rng = .Range("A1:D" & LastRow) 'Set the range to the area to be processed
For i = LastRow To 10 Step -1 'Process from the bottom
If WorksheetFunction.CountA(rng.Rows(i)) = 0 Then rng.Rows(i).EntireRow.Delete
Next i
End With
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#6
|
|||
|
|||
|
Thank you very much Graham
[problem SOLVED] Last edited by beginner; 12-26-2014 at 12:32 AM. Reason: SOLVED |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Delete All empty Rows - Print - Undo all Rows deleted
|
Bathroth | Word VBA | 1 | 10-01-2014 01:40 PM |
Grouping table rows to prevent individual rows from breaking across pages
|
dennist77 | Word | 1 | 10-29-2013 11:39 PM |
Delete Blank Rows (Cyrillic Text in Spreadsheet )
|
dozd | Excel | 1 | 02-22-2013 03:24 AM |
Count rows and add blank rows accordingly
|
Hoochtheseal | Word VBA | 1 | 01-29-2013 09:23 PM |
How to remove blank rows from a specified range?
|
Learner7 | Excel | 1 | 04-19-2011 02:45 AM |