![]() |
|
|
|
#1
|
|||
|
|||
|
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
|
|||
|
|||
|
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
|
|||
|
|||
|
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 |