Thema Datum  Von Nutzer Rating
Antwort
16.09.2008 17:52:28 Gabi
NotSolved
Blau Aw:Word: bestimmte Zeilen löschen
17.09.2008 09:50:50 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
17.09.2008 09:50:50
Views:
1738
Rating: Antwort:
  Ja
Thema:
Aw:Word: bestimmte Zeilen löschen
Hallo Gabi,
ich weiß nicht, ob “SPRACHE” oder “LÄNGE” nur am Zeilenanfang vorkommen können. Wenn das nicht der Fall ist, muss jeweils geprüft werden, ob das Wort am Zeilenanfang steht (Sub LNFORMAT_2()), im anderen Fall kann darauf verzichtet werden (Sub LNFORMAT_3()). Jedes Selection verbraucht ziemlich viel Zeit.

Sub LNFORMAT_2()
Dim a, AdC, b, i, s()
ReDim s(1)
s(0) = "SPRACHE"
s(1) = "LÄNGE"
ReDim Anzahl(1)
With Selection
For i = 0 To 1
Set AdC = ActiveDocument.Content
.HomeKey unit:=wdStory
Do
AdC.Find.Execute FindText:=s(i), Forward:=True
If AdC.Find.Found = True Then
AdC.Select
a = .Start
.HomeKey unit:=wdLine
b = .Start
If a = b Then .EndKey unit:=wdLine, Extend:=wdExtend
.Delete
End If
Loop Until AdC.Find.Found = False
Next i
End With
End Sub

Sub LNFORMAT_3()
Dim a, AdC, b, i, s()
ReDim s(1)
s(0) = "SPRACHE"
s(1) = "LÄNGE"
ReDim Anzahl(1)
With Selection
For i = 0 To 1
Set AdC = ActiveDocument.Content
.HomeKey unit:=wdStory
Do
AdC.Find.Execute FindText:=s(i), Forward:=True
If AdC.Find.Found = True Then
AdC.Select
.EndKey unit:=wdLine, Extend:=wdExtend
.Delete
End If
Loop Until AdC.Find.Found = False
Next i
End With
End Sub

Viel Erfolg
Holger



Gabi schrieb am 16.09.2008 17:52:28:

Hallo,

ich habe ein kleines VBA-Skript geschrieben, mit dem in einem Dokument gesucht wird, ob eine Zeile mit SPRACHE beginnt. Wenn ja, möchte ich die Zeile bis zum Zeilenende markieren und löschen:

Sub LNFORMAT()
Dim pos
pos = 1
Do While pos <= ActiveDocument.Words.Count
If ActiveDocument.Words(pos) = "SPRACHE" Or _
ActiveDocument.Words(pos) = "LÄNGE" Then
ActiveDocument.Words(pos).Select
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Delete
MsgBox "gelöscht"
End If
pos = pos + 1
Loop
MsgBox "Programm beendet"
End Sub

Leider dauert es eeewig um einen Text, der länger als eine Seite ist damit zu bearbeiten. Und es ist überhaupt nicht zuverlässig (wenn z.B. zwei Zeilen hintereinander mit SPRACHE anfangen wird nur eine Zeile gelöscht.

Kann mir irgendjemand sagen, was ich falsch mache, oder wie man das Problem einfach löst? Kann doch nicht so schwer sein...

Ich benutze Word 2003 auf Windows XP Professional.

Danke für jede Hilfe!

Die Gabi

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
16.09.2008 17:52:28 Gabi
NotSolved
Blau Aw:Word: bestimmte Zeilen löschen
17.09.2008 09:50:50 Holger
NotSolved