'Identify the number of a Word table (Selected or by Title)
I'm trying to program a macro in excel to export data to a word report. This data will go into several Word tables. All data transfer commands are now ready and working. However, in order to make this transfers more dynamic, I am inserting Titles and creating bookmarks for all tables into word report.
The problem is: Via excel macro, I am able to select the Word tables through the following code:
oDoc.Bookmarks("Table_name").Range.Select
However, I cannot transfer the data to a specific cell of this table.
I know the by Word there is this command, but I can't use with Excel.
ActiveDocument.Range(0,Selection.Paragraphs(1).Range.End).Tables.Count)
Would anyone know how to help me?
Before that I was transferring the data referencing the table number but the problem is that whenever we revise the report to include new tables my reference ends up getting lost and I have to do table count again to transfer the data in the right table .
Well, that's it! Thanks in advance if anyone can help me.
Solution 1:[1]
It entirely depends on how your document is constructed. If the bookmarks enclose content, then you can use:
oDoc.Bookmarks("Table_name").Range.Tables(1)
Solution 2:[2]
MS Word does not give each one a name, so you have to come up with your own system.
When you create the document with all the tables, you can give each one a name... using the Table.Descr property.
ActiveDocument.Tables(1).Descr = "myTable"
Then when you look for them, loop thru them and find that Descr
For Each t In ActiveDocument.Tables
If t.Descr = "myTable" Then
' do something
End If
Next
Or you can set up some constants for the Index if that helps.
Or you can create one routine that sets up variables by scanning the document that you would need to run only once.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Timothy Rylatt |
| Solution 2 | braX |
