Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ersetzen mit Unix-RegExps .*

Ersetzen mit Unix-RegExps .*
29.05.2007 15:29:21
Chris
Hi,
ich weiß, dass es eigentlich nicht funktioniert, aber vielleicht kennt ja jemand ein Add-in oder ähnliches, damit ich trotzallem ein paar RegExp-Ersetzungen in VBA machen lassen kann. Mein Problem ist folgendes:
Ich habe csv-Dateien, in denen ich derzeit hintereinander 18 Ersetzungen machen muss, wobei fast alle ungefähr so aussehen: löschen. Ich denke, dass könnte schon irgendwie möglich gemacht werden in VBA, oder? Ist ja kein komplexer regulärer Ausdruck.
Für Hinweise wäre ich sehr dankbar.
Gruß,
Chris

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ersetzen mit Unix-RegExps .*
29.05.2007 15:36:37
Original
Hi,
setzt einen Verweis auf die Bibliothek:
Microsoft VBScript Regular Expressions x.x (x.x ist die Versionsnummer),
dann kannst du nach Herzenslust Reguläre Ausdrücke verwenden.
mfg Kurt

AW: Ersetzen mit Unix-RegExps .*
29.05.2007 15:41:56
chris
Vielen Dank. Und in welcher Form binde ich jetzt die RegEXPs in die Replace-Funktion ein. Funktioniert es mit Unix-Stil? Wenn ich What:="", dann funktioniert es nicht so, wie ich es mir vorstelle.

Anzeige
AW: Ersetzen mit Unix-RegExps .*
29.05.2007 15:45:00
c0bRa
Hio...
Hier mal ein Beispiel, wie ich es derzeit nutze:
Modul Modul1:
Option Explicit
Public Function test(ByVal s As String) As String
    Dim objRegEx As Object
    Set objRegEx = CreateObject("VBscript.regexp")
    With objRegEx
        .IgnoreCase = True
        .Global = True
        .MultiLine = True
        .Pattern = "\[(.*?)\]"
    End With
    test = objRegEx.replace(s, "<$1>")
    Set objRegEx = Nothing
End Function


Rückmeldung nicht vergessen...
c0bRa
Perl ist die einzige Sprache, die vor und nach einer RSA-Verschlüsselung gleich aussieht.

Anzeige
AW: Ersetzen mit Unix-RegExps .*
29.05.2007 15:55:00
chris
Danke,
ich habs jetzt versucht, aber ich komm nicht ganz zu Recht. Ich hab jetzt folgenden Code:

Public Function test(ByVal s As String) As String
Dim objRegEx As Object
Set objRegEx = CreateObject("VBscript.regexp")
With objRegEx
.IgnoreCase = True
.Global = True
.MultiLine = True
.Pattern = ""spitzeKlammer"file.*"spitzeKlammer""
End With
test = objRegEx.Replace(""spitzeKlammer"file.*"spitzeKlammer"", "")
Set objRegEx = Nothing
End Function



Private Sub gg()
Sheets(1).Activate
a = Cells(1, 1).Value
Call test(a)
End Sub


Und damit teste ich diesen String: "spitzeKlammer"filename666"spitzeKlammer"sdfasfdasdfasf zu durchlaufen. Es passiert aber nichts. Wo ist mein Fehler?

Anzeige
AW: Ersetzen mit Unix-RegExps .*
29.05.2007 15:58:52
c0bRa
Hio...
Probier mal statt Call eine Msgbox :)
Oder gleich als Zellfunktion =TEST(A1)
c0bRa

AW: Ersetzen mit Unix-RegExps .*
29.05.2007 16:06:42
chris
Perfekt!!!
So funktionierts:

Public Function test(ByVal s As String) As String
Dim objRegEx As Object
Set objRegEx = CreateObject("VBscript.regexp")
With objRegEx
.IgnoreCase = True
.Global = True
.MultiLine = True
.Pattern = "(file.*)"
End With
test = objRegEx.Replace(s, "")
Set objRegEx = Nothing
End Function



Private Sub gg()
Sheets(1).Activate
a = Cells(1, 1).Value
Cells(1, 2).Value = test(a)
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige