Avatar billede lq Nybegynder
26. juni 2006 - 21:23 Der er 3 kommentarer og
1 løsning

VBA formattering af tabel

Jeg ønsker at lave en makro, der kan ændre bredden på kolonne 2 og 5 i en tabel. Bredden skal være 2,5 cm.

Jeg har forsøgt at optage en makro, efter at jeg har markeret tabellen, men det giver fejl. Er der nogen, der kan give mig en kodestump?
Avatar billede learningvba Nybegynder
27. juni 2006 - 08:00 #1
Hvis du kender nummeret på den tabel der skal justeres, kan du bruge dennne sub:

Public Sub Table_TilpasBredde(TabelNummer As Long, Kolonne As Long, Bredde As Single)
  If TabelNummer < ActiveDocument.Tables.Count Then
      Debug.Print "TabelNr findes ikke (endnu)"
      Exit Sub
  End If
  With ActiveDocument.Tables(TabelNummer)
      If .Columns.Count < Kolonne Then
        Debug.Print "Kolonnen findes ikke i tabellen."
        Exit Sub
      End If
      .Columns(Kolonne).SetWidth ColumnWidth:=Bredde, RulerStyle:=wdAdjustNone
  End With
End Sub

Sub'en kan kaldes ved f.eks.:

Table_TilpasBredde ActiveDocument.Tables.Count, 2, CentimetersToPoints(2.5)
Table_TilpasBredde ActiveDocument.Tables.Count, 5, CentimetersToPoints(2.5)
for at få kolonne 2 og 5 til at have en bredde på 2,5 cm.

Du kan finde tabelnummeret ved at undersøge "ActiveDocument.Tables.Count" og evt. gemme nummeret i en variabel når tabellen bliver oprettet. (Hvis samme dokument skal have mange tabeller, som du skal kunne vende tilbage til ad flere gange, så bør du have variabler til at "huske" tabellens numre.)
Avatar billede lq Nybegynder
27. juni 2006 - 10:24 #2
hmmm jeg er ikke helt sikker på at jeg forstår koden.

Jeg havde nok forestillet mig noget simplere. Kan man ikke bruge with.selection...
Avatar billede learningvba Nybegynder
27. juni 2006 - 14:18 #3
Jeg kan nok ikke gøre det nemmere end det her:

Sub OpretTabel()
  ActiveDocument.Tables.Add Selection.Range, 2, 5, wdWord8TableBehavior
  With ActiveDocument.Tables(ActiveDocument.Tables.Count)
      .Columns(1).Width = CentimetersToPoints(7.5)
      .Columns(2).Width = CentimetersToPoints(2.5)
      .Columns(3).Width = CentimetersToPoints(2.5)
      .Columns(4).Width = CentimetersToPoints(2)
      .Columns(5).Width = CentimetersToPoints(2)
  End With
End Sub

Håber det kan hjælpe dig.
Avatar billede lq Nybegynder
10. december 2007 - 16:48 #4
Havde glemt at lukke. Gør det nu.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester