Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mehrere Zeilen nach Finden eines Strings löschen?

Frage Entwicklung VB for Applications

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

18.12.2012 um 22:08 Uhr, 3070 Aufrufe, 2 Kommentare

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:

01.
Function ZeilenLoeschen(Zeilen As Integer) 
02.
 
03.
Set VBE = ThisWorkbook.VBProject.VBComponents.Item("Modul1").CodeModule 
04.
 
05.
X = 1 
06.
 
07.
With VBE 
08.
    For X = 1 To Zeilen 
09.
        Select Case True 
10.
            Case InStr(.Lines(X, 1), SuchZeile) 
11.
                For i = 1 To Zeilen 
12.
                    .DeleteLines X 
13.
                    X = X + 1 
14.
                Next i 
15.
        End Select 
16.
    Next X 
17.
End With 
18.
 
19.
End Function
Der Aufruf ist natürlich klar:

01.
SuchZeile = "Print #1, " & """<Customer>""" 
02.
Zeilen = 12 
03.
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
Mitglied: 76109
19.12.2012, aktualisiert um 01:13 Uhr
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
01.
For xy = Zeilen To 1 Step -1 
02.
...
Gruß Dieter
Bitte warten ..
Mitglied: goodbytes
19.12.2012 um 03:14 Uhr
Hallo Dieter,
ich lag so im Bett, auf einmal kam mir auch so der Gedanke...

Dann war ich der Meinung, ich schreibe es gleich, aber du warst schon schneller.

Naja, man sollte halt nicht mit Sowas erst am Ende eines Arbeitstages anfangen...

So ist`s natürlich dann besser:

01.
For i = X + Zeilen To X Step -1
Dank dir aber trotzdem!

Gruß
Torsten
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Exchange Server
Microsoft Exchange Weiterleitung mit anderer primären E-Mail Adresse (14)

Frage von Rene12345 zum Thema Exchange Server ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...