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

Ganzen Satzteil suchen und ersetzen

Ganzen Satzteil suchen und ersetzen
11.03.2006 21:43:36
Jürgen
Hallo Forumianer,
Innerhalb eines in der Tabelle zeilenweise längeren Textes tauchen viele Sätze mit dem gleichen AFANGSWORT und dem gleichen ENDWORT auf. Zwischen diesen beiden Worten befinden sich unterschiedliche Texte.
Ich möchte nun alle Sätze mit dem gesuchten ANFANGS- und ENDWORT finden und die dazwischenliegenden unterschiedlichen Texte gegen einen Standardtext ersetzen.
Kann mir da jemand auf die Sprünge helfen?

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:00:02
chris
Könntest du mal ein Beispiel hochladen ?
Innerhalb einer Zeile, längere Sätze Zwischen den Worten.
Wie werden die Sätze getrennt ? Ganz normal mit . Oder auch mit zeilenumbruch oder kann ein Satz auch über zwei Zeilen gehen ?
Bitte Beispiel.
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:07:44
trekkie
Hallo,
in etwa so?

Sub blubb()
Dim re As Object, s
Set re = CreateObject("vbscript.regexp")
s = "Start laberbaber, rumsülz Ende"
re.Pattern = "(Start).*?(Ende)"
Debug.Print re.Replace(s, "$1" & " wasandres " & "$2")
End Sub

Quatsch
11.03.2006 22:12:58
trekkie
re.Pattern = "(.*Start).*?(Ende.*)"
Gruss Nancy
Anzeige
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:15:13
Reinhard
Hi Nancy,
toller Code, versteh nix :-)
Wo finde ich denn was zu .pattern und .replace, scheinen nicht die Vba-Funktionen Pattern und Replace zu sein.
Und wo erfährt/liest man nach dasses überhaupt "vbscript.regexp" gibt?
Gruß
Reinhard
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:31:16
Reinhard
Hallo rainer,
danke für den Link, scheint ja easy erlernbar zu sein :-) Immerhin, nach 10 Minuten wußte ich schon dass mit TB TheBat gemeint ist.
Gruß
Reinhard
Anzeige
*feix*
11.03.2006 22:33:04
trekkie
Rainer, na cool isses nicht ..., ich glaube ein Regex braucht man hier nicht mal unbedingt,
vielleicht reicht ja schon K.Rolas Ansatz.
Aber anyway, faszinierend sindse diese Rex .... ;-)
lg Nancy
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:37:35
Reinhard
Hallo Nancy,
dir auch Danke. Mit der Msdn müßte ich mich auch mehr beschäftige wie mit vielen anderen Dingen auch, irgednwie fehlt mir die Zeit :-(
Gruß
Reinhard
Anzeige
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 23:29:37
Jürgen
Hallo Leute,
ich war ja überwältigt von den schnellen Reaktionen.
Ich konnte es bislang noch nicht testen, da ich auch mit den hier aufgeführten Links beschäftigt war.
Um aber auch gestellte Fragen nach einem Beispiel zu beantworten habe ich mal eine Datei unter https://www.herber.de/bbs/user/31823.xls bereitgestellt.
Im Original hat der Server sie nicht angenommen. Daher habe ich einen Auszug der Datei in eine Excel-Tabelle kopiert. Real ist die Datei etwa 25000 Zeilen lang.
Dabei soll hier z. B. in der Zeile 70 der Wert zwischen range variable Grössen /range gegen einen anderen Wert ersetzt werden. Denkbar sind aber auch andere ähnliche Fälle.
Anzumerken ist hierbei noch, dass diese Zeile in der Originaldatei etwa 2000 mal vorkommt, weshalb eine Automatisierung hier auch sinnvoll erscheint.
Ich danke euch allen für die Lösungen und denke, dass sie mich auch weiterbringen werden.
Gruß
Jürgen
Anzeige
AW: Ganzen Satzteil suchen und ersetzen
12.03.2006 00:05:27
trekkie
Hi,
hmm, ich hab hier kein xl2003 oder hast Du den xml-Code in einer excel-Tabelle?
Also ich würde das in etwa mal so versuchen [auf die Schnelle], ohne 'in' excel;-)

Sub test()
Dim fso As Object, re As Object, s, var$
Set fso = CreateObject("scripting.filesystemobject")
s = fso.GetFile("d:\test.txt").OpenAsTextStream.ReadAll
Set re = CreateObject("vbscript.regexp")
re.MultiLine = 1: re.Global = 1
re.Pattern = "(.*?<\brange\b>).*?(</\brange\b>.*?)"
var = "deine Variable"
Open "d:\test1.xml" For Output As #1
Print #1, re.Replace(s, "$1" & var & "$2")
Close #1
Set re = Nothing: Set fso = Nothing
End Sub

Alternativ kannst du dich ja auch mal versuchen an das M$ XML DOMDocument Object ranzuhangeln, *würg* ;;-))
Gruss Nancy
Anzeige
AW: Ganzen Satzteil suchen und ersetzen
12.03.2006 00:42:37
Jürgen
Hallo Nancy,
nein, ich habe den xml-Code nicht in der Excel-Tabelle, könnte ihn aber für die Bearbeitung natürlich in eine Solche hineinkopieren, wie ich es hier ja auch gemacht habe.
Der Code liegt in einer xml-bzw. kmz-Datei vor, die aber vom Server von Onkel Herber nicht akzeptiert wird. Nur deshalb habe ich den Code in eine Excel-Tabelle kopiert, um ihn hier darzustellen.
Danke für Deinen Code. Werde das alles mal durchprobieren.
Gruß
Jürgen
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:00:48
Reinhard
Hi Jürgen,
gibt es Sätze vor dem Satz mit dem Anfangswort und/oder Sätze nach dem letzten Endwort?
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:04:11
Jan3
Hi Jürgen,
Wenn Du mal ein Beispiel ins Forum stellst, könnte man es mal mit der INSTR-Funktion versuchen.
Jan
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:07:56
Ramses
Hallo
Damit sollte es gehen
Option Explicit

Sub Special_Replacement()
    Dim startWord As String, endWord As String
    Dim repPart As String
    Dim myC As Range
    Dim wdStart As Long, wdEnd As Long
    Dim tmpLeft As String, tmpRight As String
    'Womit beginnt der Bereich der zu ersetzen ist
    startWord = "Apfel"
    'Womit endet der Bereich der zu ersetzen ist
    endWord = "Apfelmus"
    'Womit soll der Bereich ersetzt werden
    repPart = "Orangen macht man Orangensaft"
    For Each myC In ActiveSheet.UsedRange
        If InStr(1, myC.Value, startWord) > 1 And InStr(1, myC.Value, endWord) > 1 Then
            wdStart = InStr(1, myC.Value, startWord)
            wdEnd = InStr(1, myC.Value, endWord) + Len(endWord)
            tmpLeft = Left(myC.Value, wdStart - 1)
            tmpRight = Right(myC.Value, Len(myC.Value) - wdEnd)
            myC.Value = tmpLeft & " " & repPart & " " & tmpRight
        End If
    Next
End Sub

hier die Beispieltabelle
https://www.herber.de/bbs/user/31820.xls
Gruss Rainer
Anzeige
AW: Ganzen Satzteil suchen und ersetzen
11.03.2006 22:14:37
K.Rola
Hallo,
mal sehen, ob ich das richtig verstanden habe, der Zellbereich muss makiert sein:
Option Explicit

Sub til()
Const FINDE As String = "Anfangsbegriff*Schlussbegriff"
Const RSETZ As String = "Neuer Anfangsbegriff jede Menge Text neuer Schlussbegriff"
Selection.Replace FINDE, RSETZ
End Sub

Gruß K.Rola

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige