PDA

Vollständige Version anzeigen : Vertikal verbundene Zellen


#jensen
25.08.2003, 18:54
Hallo,

ich will ein Word97-Dokument per VBA(97) nach bestimmten Tabellen durchsuchen. Als Suchkriterien dienen dabei die Kopfzeilen der Tabellen.
Mit For Each Tabelle in WordDoc.Tables wird also jede Tabelle abgeklappert und die erste Zeile (Table.Rows(1) ) nach bestimmten Zellen durchsucht.
Also For Each Zelle In Table.Rows(1).Cells

Den Inhalt les ich dann mit Zelle.Range.Text .

Es ergibt sich aber schon bei For Each Zelle ... ein Problem. Mitunter sind nämlich Tabellen enthalten, bei denen bestimmte Zellen vertikal verbunden sind. Damit kann er auf die angegebene Rows(1) nicht mehr zugreifen und teilt mir das mit einem Laufzeitfehler mit.

Ist ja kein Problem dacht ich, kann ich ja als Fehler behandeln. Pustekuchen! Meine On Error Resume Next -Anweisung ignoriert er völlig. Es kommt trotzdem immer noch die Fehlermeldung und somit kann ich die jeweilige Tabelle auch nicht überspringen.
Weiß jemand, woran das liegt oder hat jemand eine andere Idee, wie man das Problem lösen könnte?

Danke schon mal im Voraus!! :)

Gruß
Jens

MRR
26.08.2003, 08:02
Hi Jens,
versuch es mal nach folgendem Schema:

Sub Suche()
Dim Tabelle As Table
Dim Zelle
For Each Tabelle In ActiveDocument.Tables
On Error GoTo Fehler
If Not IsError(Tabelle.Rows.First) Then
For Each Zelle In Tabelle.Rows(1).Cells
MsgBox Left(Zelle.Range.Text, Len(Zelle.Range.Text) - 1)
Next
Weiter:
End If
Next
On Error GoTo 0
Exit Sub

Fehler:
If Err.Number = 5991 Then Resume Weiter
End Sub

HTH

#jensen
26.08.2003, 10:26
Hallo MRR,

es geht, Danke!!! :)
Allerdings funktioniert es nur, wenn man diesen Zwischenschritt über die Sprungmarke Fehler macht. Wenn ich stattdessen im Fehlerfall gleich zu "Weiter" springen will, dann kommt bei der Zeile If Not IsError(Table.Rows.First) Then wieder die Fehlermeldung, die sich nicht abfangen lässt. Versteh ich nicht, aber Hauptsache, es gibt einen Weg, dass ich das hinbekomm. :)

Also Danke nochmal!!

Gruß
Jens