VB6: Range-Objekt Word nach Style suchen, Fehler, wenn Style nicht vorhanden!
Wir verwenden in einem VB6 Projekt das Range-Objekt für Word um nach einem Style zu suchen.
Und die Find-Methode. Ist das Format im Dokument jedoch gar nicht vorhanden, bekomme ich einen VB - Laufzeitfehler!
Folgender Fehler wird in VB ausgegeben (beim Debuggen):
Laufzeitfehler '5834'
Ein Element mit dem angegebenen Namen ist nicht vorhanden.
Funktion:
Public Sub parseStyle()
Dim p As Paragraph 'Der zu analysierende Paragraph
Set p = m_para
Dim r As Range 'Das zu durchsuchende Range-Object
Dim iter As Boolean 'Loop-Variable
Dim fm As Variant 'Name des Formates nach dem gesucht wird
'Fuer jedes Format suche das Format solange, bis das Ende des
'Range-Objektes erreicht ist, oder es nicht mehr gefunden wird
For Each fm In m_formats
Set r = p.Range
iter = True
While iter And r.Start < p.Range.End
iter = False
With r.Find
.Style = fm <--- HIER Tritt der Fehler auf!!!
If .Execute(FindText:="", Forward:=True, Format:=True) = True Then
parseStyleAddChunk fm, r
If r.End + 1 < p.Range.End Then
Set r = ActiveDocument.Range(r.End + 1, p.Range.End)
iter = True
End If
End If
End With
Wend
Next fm
End Sub
Wie vermeide ich nun diesen Laufzeitfehler? Das Programm soll einfach weiterlaufen, wenn es den Style nicht findet und er auch nicht im Worddokument enthalten ist.
Und die Find-Methode. Ist das Format im Dokument jedoch gar nicht vorhanden, bekomme ich einen VB - Laufzeitfehler!
Folgender Fehler wird in VB ausgegeben (beim Debuggen):
Laufzeitfehler '5834'
Ein Element mit dem angegebenen Namen ist nicht vorhanden.
Funktion:
Public Sub parseStyle()
Dim p As Paragraph 'Der zu analysierende Paragraph
Set p = m_para
Dim r As Range 'Das zu durchsuchende Range-Object
Dim iter As Boolean 'Loop-Variable
Dim fm As Variant 'Name des Formates nach dem gesucht wird
'Fuer jedes Format suche das Format solange, bis das Ende des
'Range-Objektes erreicht ist, oder es nicht mehr gefunden wird
For Each fm In m_formats
Set r = p.Range
iter = True
While iter And r.Start < p.Range.End
iter = False
With r.Find
.Style = fm <--- HIER Tritt der Fehler auf!!!
If .Execute(FindText:="", Forward:=True, Format:=True) = True Then
parseStyleAddChunk fm, r
If r.End + 1 < p.Range.End Then
Set r = ActiveDocument.Range(r.End + 1, p.Range.End)
iter = True
End If
End If
End With
Wend
Next fm
End Sub
Wie vermeide ich nun diesen Laufzeitfehler? Das Programm soll einfach weiterlaufen, wenn es den Style nicht findet und er auch nicht im Worddokument enthalten ist.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 19381
Url: https://administrator.de/contentid/19381
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
1 Kommentar
Moin stoperror,
Du kannst diesen Fehler abfangen oder auch ignorieren.
Schau mal in der Hilfe unter "On Error goto.." bzw. "On Error Resume Next".
Ich hab auch so ein Beispiel verwandt in Outlook - Automatisierte Mailverarbeitung mit VBA-Makros
Sonst poste noch mal bitte.
HTH
Frank / der Biber aus Bremen
Du kannst diesen Fehler abfangen oder auch ignorieren.
Schau mal in der Hilfe unter "On Error goto.." bzw. "On Error Resume Next".
Ich hab auch so ein Beispiel verwandt in Outlook - Automatisierte Mailverarbeitung mit VBA-Makros
Sonst poste noch mal bitte.
HTH
Frank / der Biber aus Bremen