I have a Word Document with multiple Tables. Some of them have bookmarks and the other don't. Is there a way to implement ConvertToText command ONLY on the tables with the bookmarks on them using VBA (regardless of the bookmark name....I have over 40 bookmarks)? Basically, I'm trying to get rid of the bookmarked tables and keep just the text in those. The bookmarked tables are inserted INSIDE other tables WITHOUT bookmarks. I'm using MS Word 2007.
Thanks in Advance! Seb
Best How To :
Yes, there is quite simple solution. You need to loop through all bookmarks and check if one is
wdWithInTable. If so, convert whole table into text. Here is a code for you:
Dim BK As Bookmark
For Each BK In ActiveDocument.Bookmarks
If BK.Range.Information(wdWithInTable) Then
'uncomment for test just to check if working as expected
After additional explanation in comment below there are some hints for you to solve your problem.
To find a table in which your bookmark is:
To find first table in above table you use this code
but I think you can have a few tables inside you parent table. Therefore i suggest to run a loop like this (pseudo code, requires some adjustment to your needs):
dim parentTable as Table
dim BK as Bookmark 'or a reference to one from loop above
set BK = Activedocument.bookmarks(1)
set parentTable = BK.Range.Tables(1)
dim i as integer
for i=1 to parentTable.Tables.Count
if parenttable.tables(i).range.start >=bk.range.start and _
parenttable.tables(i).range.end <=bk.range.end Then
'here we know that tables(i) is inside bookmark 1 (BK)
I didn't have an oportunity to test it but hope it will work.