Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

suchen und erstetzen mit platzhaltern

suchen und erstetzen mit platzhaltern
29.05.2008 12:03:39
Alex
Hallo,
ich suche eine Möglichkeit in einem Excel-Dokument alle Einträge nach folgendem Schema zu ersetzen.
abc**F , wobei ** immer wechselende Zeichen darstellt, soll ersetzt werden durch
abc**P , wobei ** eben die gleichen Zeichen wie vorher enthalten soll.
Gibt es eine Möglichkeit dies über die suchen und ersetzen funktion zu machen, oder eine Lösung per Makro.
Da ich nicht weiß, wo überall in dem Dokument die betreffenden Einträge stehen, kann ich diese auch nicht nach word kopieren oder so.
Danke und Gruß,
Alex

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen und erstetzen mit platzhaltern
29.05.2008 14:34:54
Alex
Hallo Harald,
das ist zwar schonmal ein Anfang, aber ich bin noch ratlos.
Mein Makro sieht testweise so aus:
Makro anfang
Option Explicit

Public Function fncReplace( _
ByVal strSource As String, _
ByVal strPattern As String, _
ByVal strReplace As String) As String
Dim objRegEx As Object
Set objRegEx = CreateObject("vbscript.regexp")
With objRegEx
.IgnoreCase = True
.Global = True
.MultiLine = True
.Pattern = strPattern
fncReplace = .Replace(strSource, strReplace)
End With
Set objRegEx = Nothing
End Function



Public Sub test()
Range("a1").Value = fncReplace(Range("a1").Value, "^[a-z]{3}[0-9]{2}F$", "P")
End Sub


Dazu habe ich noch 2 Probleme:
1. Wie wende ich es auf das ganze Workbook an? Bisher ersetzt das Makro ja nur Zelle "a1"
2. In der Zelle steht jetzt nur ein "P", der Rest soll aber auch da stehen. Es soll auf jeden Fall nur das "F" an sechster Stelle ersetzt und keines was evtl. in den ersten drei zeichen ist.
Vielen Dank schonmal,
Alex

Anzeige
AW: suchen und erstetzen mit platzhaltern
29.05.2008 14:37:00
Alex
Hallo Harald,
das ist zwar schonmal ein Anfang, aber ich bin noch ratlos.
Mein Makro sieht testweise so aus:
Makro anfang
Option Explicit

Public Function fncReplace( _
ByVal strSource As String, _
ByVal strPattern As String, _
ByVal strReplace As String) As String
Dim objRegEx As Object
Set objRegEx = CreateObject("vbscript.regexp")
With objRegEx
.IgnoreCase = True
.Global = True
.MultiLine = True
.Pattern = strPattern
fncReplace = .Replace(strSource, strReplace)
End With
Set objRegEx = Nothing
End Function



Public Sub test()
Range("a1").Value = fncReplace(Range("a1").Value, "^[a-z]{3}[0-9]{2}F$", "P")
End Sub


Dazu habe ich noch 2 Probleme:
1. Wie wende ich es auf das ganze Workbook an? Bisher ersetzt das Makro ja nur Zelle "a1"
2. In der Zelle steht jetzt nur ein "P", der Rest soll aber auch da stehen. Es soll auf jeden Fall nur das "F" an sechster Stelle ersetzt und keines was evtl. in den ersten drei zeichen ist.
Vielen Dank schonmal,
Alex

Anzeige
AW: suchen und erstetzen mit platzhaltern
30.05.2008 06:29:53
Harald
Hallo Alex,
Teil 1:

Sub test()
Dim xxx As Range
For Each xxx In ActiveSheet.Range("A1:C5") ' hier den zu durchsuchenden Bereich eingeben
xxx.Value = fncReplace(xxx.Value, "^abc(..)F$", "abc$1P") ' hier schon neuer Suchstring
Next
End Sub


Alternativ kannst DU auch nur die belegten Zellen bearbeiten lassen, allerdings ist mir gerade nicht geläufig, wie man den entsprechenden bereich herausfindet (hat was mit XlEnd und so zu tun).
Teil 2: Funktioniert nur, wenn man sich mit den nicht immer trivialen regulären Ausdrücken beschäftigt. Dieser Ausdruck
fncReplace(Range("a1").Value, "^[a-z]{3}[0-9]{2}F$", "P")
~f~
müsste wohl so heißen:
~f~
fncReplace(Range("a1").Value, "^abc(..)F$", "abc$1P")
(nur angetestet - keine Zeit zu mehr.
Siehe auch Hilfe zu "regular expressions" von VBscript oder sonstwo im Netz.)
Gruß Harald

Anzeige

239 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige