ich möchte per Makro die Spaltenbreiten je Tabelle fest einstellen. Ich erhalte allerdings eine Fehlermeldung und weiß nicht weiter, wenn folgende Situation auftritt:
Ab Zeile 3 habe ich 4 Zellen pro Zeile. Aber Zeile 1 und 2 bestehen aus einer _ unterschiedlichen Anzahl von Zeilen. Daher ist für mich klar, dass VBA eine Fehlermeldung herausgibt
("Lautzeitfehler 5992: Es können keine individuellen SPalten in dieser Sammlung adressiert werden, weil die Zellenweite der Tabelle unterschiedliche Werte aufweist")
| |
| | |
| | | | |
| | | | |
| | | | |
In Word selber kann ich ja die Spaltenbreite in Zelle A3 linksklicken und zurechtziehen, ohne das A2 und A1 sich bewegt/Fehlermeldungen aufkommen.
Ist dieses Verhalten in VBA übertragbar?
Anbei mein Code:
Dim x, Err
Public Sub VierzehnFünf()
Err = 0
TabellenIndex_A
If Err = 1 Then Exit Sub
Dim tRange As Range
'Dim tRange
Set tRange = ActiveDocument.Tables(x).Range
'Set tRange = ActiveDocument.Tables(5).Range
'Spalte 1, cm
tRange.Rows(3).Select
tRange.Columns(1).Select
'PointsToZentimeter-Methode:
'Ändert eine Maßeinheit von Punkt in Zentimeter
Selection.Columns.Width = CentimetersToPoints(2.8)
'Spalte 2, cm
tRange.Columns(2).Select
Selection.Columns.Width = CentimetersToPoints(2.8)
'Spalte 3, cm
tRange.Columns(3).Select
Selection.Columns.Width = CentimetersToPoints(2.8)
'Spalte 4, cm
tRange.Columns(4).Select
Selection.Columns.Width = CentimetersToPoints(2.8)
'Spalte 5, cm
tRange.Columns(5).Select
Selection.Columns.Width = CentimetersToPoints(2.8)
'Anpassung der Zellenhöhe auf 0,5 cm
Set tRange = ActiveDocument.Tables(x).Range
ActiveDocument.Tables(x).Rows.Height = CentimetersToPoints(0.5)
Selection.Collapse
End Sub
Private Function TabellenIndex_A()
With ActiveDocument
For x = 1 To .Tables.Count
'steht der Cursor in der Tabelle
If Selection.Range.InRange(.Tables(x).Range) Then
Exit Function
End If
Next
End With
'Fehler
MsgBox "Der Cursor steht nicht in einer Tabelle!", _
vbOKOnly + vbExclamation, " Fehler im Makroablauf"
Err = 1
Exit Function
End Function