2016-12-31 3 views
0

Ich möchte einen Code zum Suchen und Ersetzen aller Zellen in einer ersten Zeile eines Excel-Blattes. Ich habe diesen folgenden Code, indem ich google suche.Excel: Suchen und ersetzen erste Zeile und Excel-Blatt

Sub FindReplace() 

Dim sht As Worksheet 
Dim fndList As Variant 
Dim rplcList As Variant 
Dim x As Long 

fndList = Array("Fname", "Lname", "Phone") 
rplcList = Array("First Name", "Last Name", "Mobile") 

For x = LBound(fndList) To UBound(fndList) 
    For Each sht In ActiveWorkbook.Worksheets 
     Rows(1).Replace What:=fndList(x), Replacement:=rplcList(x), _ 
       LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ 
       SearchFormat:=False, ReplaceFormat:=False 
    Next sht 
Next x 

End Sub 

Das funktioniert gut. aber wir sollten die Liste zum Suchen und Ersetzen im Code selbst erwähnen. Wie man es macht, um Eingaben vom Benutzerende zu nehmen, anstatt es manuell im Code einzugeben. Eingabe als Text oder Datei wäre gut.

+0

Um Eingaben vom Benutzer zu nehmen, verwenden Sie die "Inputbox" -Methode. – newguy

+0

kann mir bitte ein Stück Code geben. Ich weiß nicht, wie man programmiert, und ich bin mir sicher, dass ich in großen Fehler enden werde ... –

+0

Ich habe eine große Liste zu ersetzen. Wird die "Inputbox" mehrere Iterationen unterstützen? –

Antwort

3
fndList = Split(Application.InputBox("List the values to be searched for in the following format: " & vbCrLf & "val1, val2, val3, ...", Type:=2), ",") '<--| this returns an array of 'String's 
rplcList = Split(Application.InputBox("List the values to be replaced in the following format: " & vbCrLf & "val1, val2, val3, ...", Type:=2), ",") '<--| this returns an array of 'String's 

For Each sht In ActiveWorkbook.Worksheets 
    For x = LBound(fndList) To UBound(fndList) 
     sht.Rows(1).Replace What:=fndList(x), Replacement:=rplcList(x), _ 
         LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ 
         SearchFormat:=False, ReplaceFormat:=False 
    Next x 
Next sht 
+0

Hallo danke für den Code. aber es aktualisiert nur meine A1-Zelle. Ich gebe Eingabe Fname, Lname, Telefon und Vorname, Nachname, Mobile. mache ich hier einen Fehler? –

+0

siehe bearbeitete Antwort. Wenn es Ihre Frage gelöst hat, dann markieren Sie sie bitte als akzeptiert. Danke. – user3598756

+0

Ich bekomme immer noch das gleiche Ergebnis. Nur die Zelle "A1" wird aktualisiert. –