Mehrere Zeilen nach Finden eines Strings löschen?
Hallo,
ich stehe gerade vor einem kleinen Problem.
Ich will in einem VBA-Modul mittels einer geschriebenen Funktion einen String suchen und nach dem Finden diese Zeile und Folgezeilen (als Variable übergeben) löschen.
Leider wird nur ein Teil gelöscht.
Wo liegt da das Problem? Ich hab das Gefühl, dass ich den Wald vor lauter Bäumen nicht sehe...
Hier der Code der Funktion:
Der Aufruf ist natürlich klar:
Zur Info: bei """Customer""" musste ich die "" maskieren, da mein Makro andere Makros, welche für eine Ausgabe als xml-Dateien zuständig sind ändert.
Danke schon mal im Voraus !!!
Torsten
ich stehe gerade vor einem kleinen Problem.
Ich will in einem VBA-Modul mittels einer geschriebenen Funktion einen String suchen und nach dem Finden diese Zeile und Folgezeilen (als Variable übergeben) löschen.
Leider wird nur ein Teil gelöscht.
Wo liegt da das Problem? Ich hab das Gefühl, dass ich den Wald vor lauter Bäumen nicht sehe...
Hier der Code der Funktion:
Function ZeilenLoeschen(Zeilen As Integer)
Set VBE = ThisWorkbook.VBProject.VBComponents.Item("Modul1").CodeModule
X = 1
With VBE
For X = 1 To Zeilen
Select Case True
Case InStr(.Lines(X, 1), SuchZeile)
For i = 1 To Zeilen
.DeleteLines X
X = X + 1
Next i
End Select
Next X
End With
End Function
Der Aufruf ist natürlich klar:
SuchZeile = "Print #1, " & """<Customer>"""
Zeilen = 12
Call ZeilenLoeschen(Zeilen)
Zur Info: bei """Customer""" musste ich die "" maskieren, da mein Makro andere Makros, welche für eine Ausgabe als xml-Dateien zuständig sind ändert.
Danke schon mal im Voraus !!!
Torsten
Please also mark the comments that contributed to the solution of the article
Content-Key: 196033
Url: https://administrator.de/contentid/196033
Printed on: April 19, 2024 at 22:04 o'clock
2 Comments
Latest comment
Hallo TorstenB!
Ist doch logisch, wenn Du eine Zeile löschst und den Zähler +1 machst, dann wird immer eine Zeile übersprungen. Von daher fange bei der letzten Zeile an, also
Gruß Dieter
Ist doch logisch, wenn Du eine Zeile löschst und den Zähler +1 machst, dann wird immer eine Zeile übersprungen. Von daher fange bei der letzten Zeile an, also
For xy = Zeilen To 1 Step -1
...
Gruß Dieter