Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

@trekkie / Ganzen Satzteil suchen und ersetzen

@trekkie / Ganzen Satzteil suchen und ersetzen
18.03.2006 03:45:33
Jürgen
Hallo,
Ich habe letzte Woche die nachfolgende etwas abgewandelte Routine von trekkie hier erhalten, die so, wie sie hier steht auch bestens funktioniert.

Private Sub Replacement_Datei()   ' Suchen/Ersetzen in Datei
Exit Sub
'In Cells(4,3)steht Anfangswort //  in Cells(4,4)steht Endwort
Dim fso As Object, re As Object, s, var$
Dim sSource As String, sTarget As String, sPath As String
Set fso = CreateObject("scripting.filesystemobject")
Worksheets("Satz_in_Datei_ersetzen").Activate
sPath = ThisWorkbook.Path & "\"
sSource = sPath & Range("A8").Value  'alter Dateiname
sTarget = sPath & Range("A10").Value  'neuer Dateiname
s = fso.GetFile(sSource).OpenAsTextStream.ReadAll
Set re = CreateObject("vbscript.regexp")
re.MultiLine = 1: re.Global = 1
re.Pattern = "(.*?<latitude>).*?(</latitude>.*?)"
'Die Begriffe "<latitude>" und "</latitude>" 'möchte
'ich durch Variable (Anfangswort und Endwort) ersetzen
var = Range("C6").Value
Open sTarget For Output As #1
Print #1, re.Replace(s, "$1" & var & "$2")
Close #1
Set re = Nothing: Set fso = Nothing
End Sub

Wie schon in den Zeilen kommentiert, möchte die hier fest eigebundenen Befehle/Begrife/Worte durch Variable ersetzen.
Meine diesbezüglichen Experimente haben nicht zum Erfolg geführt.
Gruss
Jürgen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: @trekkie / Ganzen Satzteil suchen und ersetzen
18.03.2006 10:43:30
Nepumuk
Hallo Jürgen,
ungetestet:
re.Pattern = "(.*?&lt" & Anfangswort & "&gt).*?(&lt/" & Endwort & "&gt.*?)"
Gruß
Nepumuk

AW: @trekkie / Ganzen Satzteil suchen und ersetzen
18.03.2006 21:58:52
Jürgen
Hallo Nepumuk,
schade, hat nicht geklappt. ;-(
Gruss
Jürgen
AW: @trekkie / Ganzen Satzteil suchen und ersetze
19.03.2006 21:35:45
bst
Abend Jürgen,
das "&gt" sollte ein &gt Zeichen sein, dann sollte das auch gehen.
Es sei denn Du hast von der 'RegEx-Syntax' belegte 'Sonderzeichen' in den Wörtern benutzt.
cu , Bernd
--
re.Pattern = "(.*?<" & Anfangswort & ">).*?(</" & Endwort & ">.*?)"


Anzeige
AW: @trekkie / Ganzen Satzteil suchen und ersetze
19.03.2006 22:05:44
Jürgen
Hallo Bernd,
irgendetwas verstehe ich hier nicht.
Ich sehe keinen Unterschied zu der von Nepumuk geposteten Zeile, die aber leider nicht funktionierte.
Ich werde wohl noch etwas experimentieren müsse.
Im Augenblick sitze ich aber auf gepackten Koffern.
Melde mich ggf. am kommenden WE wieder.
Gruß
Jürgen
AW: @trekkie / Ganzen Satzteil suchen und ersetze
20.03.2006 10:16:10
bst
Morgen Jürgen,
Du mußt Anfangswort und Endwort natürlich noch auslesen.
Folgendes funktioniert bei mir mit (Anfangswort "Anfang", Endwort "Ende", var "NeuWert")
Alt:
Vorher<Anfang>Mitte</Ende>Nachher
Neu:
Vorher<Anfang>NeuWert</Ende>Nachher
HTH, Bernd
--
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Sub Replacement_Datei() ' Suchen/Ersetzen in Datei
    Dim fso As Object, re As Object, s, var$
    Dim sSource As String, sTarget As String, sPath As String
    Set fso = CreateObject("scripting.filesystemobject")
    Worksheets("Satz_in_Datei_ersetzen").Activate
    sPath = ThisWorkbook.Path & "\"
    sSource = sPath & Range("A8").Value 'alter Dateiname
    sTarget = sPath & Range("A10").Value 'neuer Dateiname
    s = fso.GetFile(sSource).OpenAsTextStream.ReadAll
    Set re = CreateObject("vbscript.regexp")
    re.MultiLine = 1: re.Global = 1
    
    ' In Cells(4,3) = C4 steht Anfangswort // in Cells(4,4) = D4 steht Endwort
    re.Pattern = "(.*?<" & Range("C4").Value & ">).*?(</" & Range("D4").Value & ">.*?)"
    var = Range("C6").Value
    Open sTarget For Output As #1
    Print #1, re.Replace(s, "$1" & var & "$2")
    Close #1
    Set re = Nothing: Set fso = Nothing
End Sub

Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige