Discussion:
Tabelle: Letzte Spaltenbreite nicht auslesbar: Fehler 4605
(zu alt für eine Antwort)
Thomas Hoffmann
2011-07-24 15:26:53 UTC
Permalink
Möchte in Tabelle 2 die Spaltenbreite wie in Tabelle 1 einstellen.
Beide tabellen haben 5 Spalten.
Columns.Count gibt auch für beide jeweils 5 zurück.
in Tabelle 2 gibt Columns(5).width eine Zahl zurück, in Tabelle 1 erzeugt Columns(5).width
fehler 4605:
'Diese Methode oder Eigenschaft ist nicht verfügbar, weil das Objekt auf das Ende einer
Tabellenzeile verweist'. Der 'Hilfe'-Button öffnet hier leider kein gezielte Hilfe sondern
das Thema, wie man die Hilfe in VBA aufruft.
for each cc in table(1).columns macht bei dem letzten cc.width übrigens den gleichen Error.

Ich kann das nicht verstehen. Fällt jemandem hierzu was ein?
(Word 2000)
Wolfram Jahn
2011-07-24 22:33:13 UTC
Permalink
Post by Thomas Hoffmann
Möchte in Tabelle 2 die Spaltenbreite wie in Tabelle 1 einstellen.
Beide tabellen haben 5 Spalten.
[...]
Ich kann das nicht verstehen. Fällt jemandem hierzu was ein?
(Word 2000)
Bei mir nicht nachvollziehbar:

Sub cols()
Debug.Print ActiveDocument.Tables(1).Columns.Count
Debug.Print ActiveDocument.Tables(2).Columns.Count
Debug.Print ActiveDocument.Tables(1).Columns(5).Width
Debug.Print ActiveDocument.Tables(2).Columns(5).Width

Debug.Print

For Each cc In ActiveDocument.Tables(1).Columns
Debug.Print cc.Width
Next cc

Debug.Print

For Each cc In ActiveDocument.Tables(2).Columns
Debug.Print cc.Width
Next cc

End Sub

(Fehlerlose) Ausgabe:

5
5
92,15
52,1

92,1
92,1
92,1
92,15
92,15

92,1
92,1
92,1
132,2


Wolfram
Thomas Hoffmann
2011-07-25 12:59:38 UTC
Permalink
Vielen Dank Wolfram, so sollte es genau sein.

Habe nun folgendes entdeckt:
tables(1).uniform ist false.

Habe daher mal über

For ii = 1 To rr.Tables(1).Rows.Count
If rr.Tables(1).Rows(ii).Range.Columns.Count <> rr.Columns.Count Then
rr.Tables(1).Rows(ii).Select
Stop
End If
Next ii

geschaut, welche Zeile hier in den Spalten abweicht und keine gefunden! (rr ist der Range
einer Zeile in tables(1), in der mein cursor steht.).

Auch das kann ich nicht verstehen.
Thomas Hoffmann
2011-07-25 13:52:23 UTC
Permalink
Lösung:
cell(jj).width ist das gleiche wie columns(jj).width.
Wenn ich mit dem wert aus der cell arbeite gibts keine Fehler mehr.
Trotzdem seltsam.
Wolfram Jahn
2011-07-25 17:29:41 UTC
Permalink
Post by Thomas Hoffmann
cell(jj).width ist das gleiche wie columns(jj).width.
Wenn ich mit dem wert aus der cell arbeite gibts keine Fehler mehr.
Trotzdem seltsam.
Diese Rätsel machen die Beschäftigung mit MS Produkten ja so interessant.

Würde immer alles völlig glatt gehen und logisch nachvollziehbar
ablaufen wäre es ganz schön langweilig.

:)

Wolfram

Lesen Sie weiter auf narkive:
Loading...