![]() |
#3
|
|||
|
|||
![]()
I agree with Graham. You don't need any bookmarks if you are writing data to table cell. However, as your objective tables (table 8-17) could be more than simply basic rows and columns and creating them with code can get gnarly very quickly, I would do it a little differently.
In your template create the first 7 tables and the first objective table (table 8). Select the objective table and create with it a building block. Call it "Objective Table" and save it to the template. Then use code something like this: Code:
Sub Example() Dim AppWord As Object Dim oDoc As Object Dim oTbl As Object Dim oRng As Object Dim lngIndex As Long, lngObjectives As Long On Error Resume Next Set AppWord = GetObject(, "Word.Application") If Err Then Set AppWord = CreateObject("Word.Application") End If On Error GoTo 0 Set oDoc = AppWord.Documents.Add("D:\Demo Template.dotm") 'Write the first objective. Set oTbl = oDoc.Tables(8) With oTbl .Cell(2, 2).Range.Text = "Some text" .Cell(4, 1).Range.Text = "Some other text" 'etc. End With 'Are there other objectives? Yes in this demo 5 lngObjectives = 5 'Replace with whatever you have now that determines the number of objectives required. For lngIndex = 2 To lngObjectives Set oRng = oTbl.Range oRng.Collapse wdCollapseEnd oRng.MoveEnd wdCharacter, 1 oRng.InsertBefore vbCr oRng.MoveStart wdCharacter, 1 ActiveDocument.AttachedTemplate.BuildingBlockEntries("Objective Table").Insert Where:=oRng 'Write data to new objective as required. Set oTbl = oRng.Tables(1) With oTbl .Cell(2, 2).Range.Text = "Some text" .Cell(4, 1).Range.Text = "Some other text" 'etc. End With Next lngIndex End Sub |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
zachg18 | Word | 1 | 07-15-2013 11:10 PM |
how to copy all ms word tables into excel | rehan129 | Word | 0 | 01-28-2012 10:17 AM |
![]() |
ripcurlksm | Word Tables | 2 | 09-09-2011 04:59 AM |
![]() |
atfresh | Word Tables | 1 | 06-19-2011 09:13 PM |
![]() |
radman154 | Word Tables | 1 | 03-25-2011 12:04 AM |