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, 3049 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Mehrere lokale Drucker löschen (4)

Frage von Tealk144 zum Thema Batch & Shell ...

Batch & Shell
Powershell - Zeilen in einer csv löschen bis (7)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Perl
gelöst Mit Perl aus einer Datei teilidentische Zeilen löschen (5)

Frage von Jeduja zum Thema Perl ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...