17. december 2018 - 14:44Der er
1 kommentar og 1 løsning
macro til at indsætte samme tabel i Word i VBA
Hej eksperter
Jeg har følgende macro, der kan indsætte en tabel med bestemte ord i kolonne 1 og bestemt antal kolloner og rækker. Det virker også fint med den første tabel. Herefter indsætter den en tabel uden tekst og kanter. Det er højest sandsynligt pga. at koden er kun til den første tabel i word jf "Tables(1)".
Hvordan kan jeg ændre koden, så den indsætter alle oplysninger i en tabel hver gang, og ikke kun referer til den første tabel i Word dokumentet. Til info vil der også være andre tabller, som ser anderledens ud i worddokumentet.
Koden ser sådan ud:
Sub InsertTeroiModul()
'Denne virker ved førstetabel
Dim wdApp As Word.Application Set wdApp = GetObject(, "Word.Application")
Dim rng As Word.Range Set rng = wdApp.Selection.Range
Prøv nedenstående version i stedet. Jeg har oprettet et tabelobjekt, oTable, som bliver indsat der, hvor du har defineret rng (selection) – og så er det oTable, jeg ændrer på.
Bemærk, at jeg også har brugt With/End With, så der kun refereres til samme objekt én gang. Det er mere effektiv kode.
Du havde brugt ”Table” i sidste del, hvor kolonnebredder ændres. ”Table” er ikke erklæret som variabel (og det er måske derfor, du har sat ”On Error Resume Next” omkring? Jeg har brugt oTable is stedet.
Dim wdApp As Word.Application Set wdApp = GetObject(, "Word.Application")
.Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle .Borders(wdBorderVertical).LineStyle = wdLineStyleSingle End With
For Each oTable In ActiveDocument.Tables On Error Resume Next With oTable .Columns(1).Width = 60 .Columns(2).Width = 400 End With On Error GoTo 0 Next oTable
'clean up Set oTable = Nothing Set rng = Nothing End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.