Word: Zeilen einer Tabelle zählen

  • #1
E

Eddie

Bekanntes Mitglied
Themenersteller
Dabei seit
04.02.2002
Beiträge
7.380
Reaktionspunkte
0
Moin moin,

wie kann man in Word die Zeilen einer Tabelle zählen, wenn einzelne Spalten über mehrere Zeilen gehen, sprich es existieren vertikal verbundene Zellen?
Folgende Methode liefert dann einen Fehler
Code:
ActiveDocument.Tables(m_i).Rows.Count
Das m_i kommt von der Schleife über alle Tabellen in dem Aktiven Dokument.

Eddie
 
  • #2
Hallo Eddi,

eigentlich liefert diese Funktion immer das Richtige   ???

Wenn du in der Symbolleiste das Pi drückst werden alle nicht druckbaren Zeichen angezeigt. Am rechten Rand der Tabelle siehst du dann auch am jeweiligen Zeilenende eine Zeilenende-Zeichen (kleiner Kreis). Diese zählt die Funktion (eigentlich immer richtig).

Wenn nun vertikale Verbindungen von Zellen so auftreten, daß über die Tabellenbreite z.B. jeweils 2 übereinanderliegende Zellen verbunden sind, dann wird daraus eine Zeile (also eine weniger, als vor der Verbindung).

Wenn Du die Druckzeilen zählen willst, kannst Du das folgendermassen machen.

Code:
Sub Word_TabMitVertikalVerbZellen_ZeilenZaehlen()
  
  Dim l_lines_anf As Long, l_lines_end As Long, l_lines As Long
  Dim m_i As Long
  
  m_i = 1
  
  If ActiveDocument.Tables.Count >= m_i Then
    
    l_zeilen_cnt = ActiveDocument.Tables(m_i).Rows.Count
    
    l_lines_anf = ActiveDocument.Tables(m_i).Range.Information(wdFirstCharacterLineNumber)
    
    l_lines_end = ActiveDocument.Range( _
                    Start:=ActiveDocument.Tables(m_i).Range.End, _
                    End:=ActiveDocument.Tables(m_i).Range.End + 1 _
                    ).Information(wdFirstCharacterLineNumber)
    
    l_lines = l_lines_end - l_lines_anf

    MsgBox (Die Tabelle hat  & l_zeilen_cnt &  Zeilen & vbLf & vbLf & _
      Die Tabelle hat eine Höhe von  & l_lines &  Durckzeilen.)

  End If
End Sub

Gruß Matjes :)
 
  • #3
Hallo Matjes,

erst einmal vielen Dank für Deine Mühe, werde das gleich mal ausprobieren.
Die Kreise am Ende der Zeile sehe ich und die Anzahl ist auch korrekt.
Keine Ahnung, warum Word 2000 da einen Fehler meldet. Da der Fehler nur bei Tabellen auftritt, die vertikal verbundene Zellen haben und ansonsten nicht, gehe ich mal davon aus, dass ich die Funktion richtig verwendet habe. ;)


Eddie
 
  • #4
Mein Fehler.
ActiveDocument.Tables(m_i).Rows.Count liefert tatsächlich den korrekten Wert. Ich habe aber den Wert in eine For-Schleife eingebaut und anschliessend ActiveDocument.Tables(m_i).Rows(m_j).Cells.Count ausgeben lassen.
Und genau hier tritt der Fehler dann auf. Der Debugger markiert aber die For Schleife.
Auch wenn ich die Berechnung des Druckbereichs nicht ganz verstehe, liefert die Funktionen falsche Werte. Bei allen Tabellen mit vertikal verbundenen Zellen, kommen negative Werte heraus.
Aber das ist jetzt nicht so wichtig.

Nochmals Danke.


Eddie
 
Thema:

Word: Zeilen einer Tabelle zählen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben