Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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.

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

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige