#1
|
|||
|
|||
Macro to remove table captions leaves empty space
I tried to run the macro to remove captions in all tables in a document. Code:
Sub delTableCaptionAll() Dim ctr As Integer Dim txt As String Dim Check As Boolean Dim para As Paragraph ctr = 0 For Each para In ActiveDocument.Paragraphs txt = para.Range.Text Debug.Print txt Check = InStr(txt, "Table") Debug.Print Check If Check = True And para.Range.Style = "Caption" Then para.Range.Delete End If ctr = ctr + 1 Debug.Print ctr Next End Sub Thanks |
#2
|
||||
|
||||
You will need a second bite at it if the caption is followed by a table since the paragraph mark remains if the paragraph contains any content.
Code:
Sub delTableCaptionAll() Dim ctr As Integer, aRng As Range Set aRng = ActiveDocument.Range With aRng.Find .Text = "Table" .ClearFormatting .Style = "Caption" .Forward = True Do While .Execute aRng.Paragraphs(1).Range.Delete If aRng.Paragraphs(1).Next.Range.Information(wdWithInTable) Then aRng.Delete End If ctr = ctr + 1 Loop Debug.Print ctr End With End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
|||
|
|||
Thanks. That works fine. But the problem is I insert the caption using macro. For testing purpose. I insert it multiple times.
When I try to delete them, the lines of removed captions are still there. I try to use the following code to check whether the previous paragraph is empty. If it is empty, then remove the line. But it returns false. Code:
If aRng.Paragraphs(1).Previous.Range.Text = "" Then aRng.Delete End If |
#4
|
||||
|
||||
A paragraph range always includes a paragraph mark so Range.Text is going to give you a vbCr value. Try looking for aRng.Paragraphs(1).Previous.Range.Text = vbCr
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#5
|
||||
|
||||
And the code I provided earlier used the same double test as yours did. It is looking for a style where the paragraph also contains the word 'Table'. Those empty paragraphs fail on the second test.
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#6
|
|||
|
|||
Thanks Lockton for the reply, that removes 1 blank line above. But what if I try to remove several blank lines from multiple caption insertions in one table ?
I try to add the code below : Code:
'loop through all blank lines above the removed line. Do While aRng.Paragraphs(1).Previous.Range.Text = vbCr aRng.Delete Loop |
#7
|
||||
|
||||
Remove any instance of empty paragraphs in blocks of text by searching for ^p^p and replacing with ^p
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to remove space between header and first bullet in Outlook email created by Excel macro | kevinbradley57 | Excel Programming | 1 | 03-27-2019 08:39 PM |
How to remove almost a full page of blank space in between Word table rows | garrisonsdad | Word Tables | 4 | 10-18-2018 09:09 PM |
Can't get rid of empty white space in table | wtfword | Word Tables | 2 | 01-24-2018 02:47 AM |
Remove consecutive empty paragraphs within existing macro | kevinbradley57 | Word VBA | 5 | 10-11-2017 05:04 PM |
Remove space after table in header | melliejane | Word | 1 | 03-05-2012 04:09 PM |