#1
|
|||
|
|||
Delete all empty rows in all tables
Hi,
I am using the following macro to delete all rows in all tables of a word document: Code:
Option Explicit Public Sub DeleteEmptyRows() Dim oTable As Table, oRow As Range, oCell As Cell, Counter As Long, _ NumRows As Long, TextInRow As Boolean ' Specify which table you want to work on. For Each oTable In ActiveDocument.Tables ' Set a range variable to the first row's range Set oRow = oTable.Rows(1).Range NumRows = oTable.Rows.Count Application.ScreenUpdating = False For Counter = 1 To NumRows StatusBar = "Row " & Counter TextInRow = False For Each oCell In oRow.Rows(1).Cells If Len(oCell.Range.Text) > 2 Then 'end of cell marker is actually 2 characters TextInRow = True Exit For End If Next oCell If TextInRow Then Set oRow = oRow.Next(wdRow) Else oRow.Rows(1).Delete End If Next Counter Next oTable Application.ScreenUpdating = True End Sub Can somebody please give me a hand? Last edited by fbucaram; 01-03-2018 at 11:38 AM. Reason: add pic |
#2
|
||||
|
||||
The following shouldn't change the format of the table, but if it does, post a document with the errant table. The macro will not work with vertically merged cells
Code:
Sub DeleteEmptyRows() 'Graham Mayor - http://www.gmayor.com - Last updated - 03 Jan 2018 Dim oTable As Table Dim iRow As Integer Dim iCol As Integer Set oTable = Selection.Tables(1) If Selection.Information(wdWithInTable) Then For iRow = oTable.Rows.Count To 1 Step -1 iCol = oTable.Rows(iRow).Cells.Count If Len(oTable.Rows(iRow).Range) = (iCol * 2) + 2 Then oTable.Rows(iRow).Delete End If Next iRow Else MsgBox "Selection is not in a table" End If lbl_Exit: Set oTable = Nothing Exit Sub End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#3
|
||||
|
||||
Cross-posted at: http://www.vbaexpress.com/forum/show...-in-all-tables
For cross-posting etiquette, please read: http://www.excelguru.ca/content.php?184 Neither Graham nor I enjoy re-inventing the wheel...
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#4
|
|||
|
|||
Solved
Thank you and sorry for that. I am the new guy.
Quote:
|
#5
|
||||
|
||||
Also cross-posted at: https://stackoverflow.com/questions/...rom-all-tables
Kindly provide the cross-post links between *all* of the forums you've done this on.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#6
|
|||
|
|||
Cross post
There are no more cross posts that I know off.
Initially I thought forums were not related to each other and that replies were not so frequent. So I posted in many forums and lost track of them. Thank you for your patience. |
#7
|
||||
|
||||
They aren't related, but that's not the issue. What your cross-posting has resulted in is three different people trying to help you on three different forums without the benefit of knowing what help you'd received elsewhere, resulting in a duplication of effort on two of them. The cross-posting rule/etiquette is about avoiding such duplication of effort and having people working with information about the issue on one forum that isn't available on the others (e.g. your mailmerge context).
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Delete Empty Table Rows | cltay87 | Word VBA | 4 | 02-27-2017 04:23 AM |
Macro to delete all empty rows from all tables | braddgood | Word VBA | 15 | 10-02-2015 01:54 PM |
Delete blank rows between the two rows that contain data | beginner | Excel Programming | 5 | 12-26-2014 12:29 AM |
Delete All empty Rows - Print - Undo all Rows deleted | Bathroth | Word VBA | 1 | 10-01-2014 01:40 PM |
Macro to delete rows with all empty cells | ubns | Excel Programming | 2 | 08-14-2012 02:01 AM |