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