Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1652to1656
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
Inhaltsverzeichnis

String in Array String ersetzen

String in Array String ersetzen
23.10.2018 16:48:22
Oisse
Hallo Zusammen,
ich habe eine Spalte, in der in mehreren Zeilen Text steht. Nun befinden sich in diesen Zeilen diverse Platzhalter, die ich später durch die richtigen Werte, z.B. Namen ersetzen möchte, jedoch nicht in dieser Originalfassung, sondern ich möchte den Inhalt dieser Spalte Zeile für Zeile in ein Array laden und in diesem Array die Platzhalter mit den richtigen Werten, die in VBA dann vorhanden sind ersetzen.
Hoffentlich habe ich es verständlich rüber gebracht.
Sinn hinter dem Ganzen ist folgender:
In den Spalten steht untereinander jeweils Text für eine Email. In jeder Spalte ein anderer vorgegebener Text.
In diesen Zeilen kommen eben Platzhalter vor, die dann durch die korrekten Werte, z.B. der Name, erscheinen soll.
Kann man also in einem Satz, der in einem Array steht, einen Begriff suchen und durch einen anderen ersetzen? Wenn ja, bitte wie?
L.G.
Oisse

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String in Array String ersetzen
23.10.2018 17:10:28
onur
text(i)=replace(text(i),"Platzhalter1","Max Mustermann")
AW: String in Array String ersetzen
23.10.2018 18:07:01
Oisse
Danke, klappt super.
Noch einen schönen Abend
AW: String in Array String ersetzen
23.10.2018 17:39:47
UweD
Hallo
so?
Sub test()
    Dim TextArr, TMP
    Dim ReadFile As String, Newfile As String
    Dim txtLines
    
    'Dialog öffnen 
    ReadFile = Application.GetOpenFilename("Text Files (*.txt),")
    'oder ReadFile = Test.txt" 
    
    Newfile = "X:\Temp\Neue Datei.txt"
    
    
    Close #1
    '1. Öffnen der Datei 
    Open ReadFile For Input As #1
    'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren 
    'Zähler auf 0 setzen 
    txtLines = 0
    Do While Not EOF(1) ' Schleife bis Dateiende. 
        Input #1, TMP ' Hilfsvariable zum einlesen verwenden 
        'Zähler hochzählen 
        txtLines = txtLines + 1
    Loop
    'Schliessen der Datei weil Dateiende erreicht wurde 
    Close #1
    
    Redim TextArr(txtLines)
    
    '2. Öffnen der Datei 
    Open ReadFile For Input As #1
    Open Newfile For Output As #2
    txtLines = 0
    
    
    Do While Not EOF(1) ' Schleife bis Dateiende. 
        Input #1, TextArr(txtLines)
        
        'suchen nach Variablen und ersetzen durch Text 
        Select Case True
            Case InStr(TextArr(txtLines), "VariableName") > 0
                TextArr(txtLines) = Replace(TextArr(txtLines), "VariableName", "NeuerName")
                
            Case InStr(TextArr(txtLines), "VariablePLZ") > 0
                TextArr(txtLines) = Replace(TextArr(txtLines), "VariablePLZ", "Deine PLZ")
                
            Case Else
             'nichts 
        End Select
        
        'wegschreiben 
            Print #2, TextArr(txtLines)
        
        'Zähler hochzählen 
        txtLines = txtLines + 1
    Loop
    
    'Schliessen der Datei weil Dateiende erreicht wurde 
    Close #2
    Close #1

End Sub

LG UweD
Anzeige
AW: String in Array String ersetzen
23.10.2018 18:08:09
Oisse
Mein Dank auch an dich.
Ich nehm lieber das von onur, ist kürzer und übersichtlicher für mich.
Schönen Abend noch
AW: String in Array String ersetzen
23.10.2018 18:30:39
UweD
Das kannst du doch gar nicht vergleichen
Der Code von Onur ist nur der Part zum Tauschen von Textteilen
Der ist bei mir auch drin.
Das ganze drum herum ist das Einlesen in eine Array und das Abspeichern in eine neue Datei.
AW: String in Array String ersetzen
23.10.2018 18:53:03
onur
Sei doch nicht beleidigt!
Abgesehen davon: dein Code macht eine externe Textdatei auf und bearbeitet Diese.
Davon war jedoch nie die Rede gewesen: "In den Spalten steht untereinander jeweils Text für eine Email. In jeder Spalte ein anderer vorgegebener Text".
Anzeige
ich bin nicht beleidigt..
24.10.2018 08:38:27
UweD
Hallo
..Er hat aber geschrieben:
&GT&gt ich möchte den Inhalt dieser Spalte Zeile für Zeile in ein Array laden
dafür hab ich was gebaut


&gt&gt und in diesem Array die Platzhalter mit den richtigen Werten, die in VBA dann vorhanden sind ersetzen.
Das ist das, was du und ich auch erledigt haben.
LG UweD
AW: ich bin nicht beleidigt..
24.10.2018 10:09:46
Oisse
Hallo UweD,
da hab ich ja ganz schön was angestellt. Tut mir echt leid, dass du dir wegen mir soviel Arbeit und Mühe gemacht hast, das ist mir jetzt erst bewusst geworden. Ich schätze das wirklich sehr! Leider habe ich mich wohl unglücklich ausgedrückt. Ich hab tatsächlich nur diese eine einzige Zeile gesucht, alles andere hatte ich mir schon zurecht gebastelt. Deswegen auch meine Antwort.
Ich werde versuchen mich zukünftig klarer zu formulieren, damit nicht unnötig viel Zeit für die Antworten drauf gehen. Also nochmals viiiielen herzlichen Dank für deine Mühe.
Herzliche Grüße
Oisse
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige