2016-12-31 1 views
0

Я хочу, чтобы код нашел и заменил все ячейки в первой строке листа excel. У меня есть следующий код, выполнив поиск в google.Excel: найдите и замените первый ряд и лист excel

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 

Это прекрасно работает. но мы должны упомянуть список поиска и замены в самом коде. Как заставить его вводить ввод с пользовательского конца, а не вручную указывать его в коде. Вход как текст или файл будет хорошим.

+0

Для ввода данных от пользователя используйте метод «Inputbox». – newguy

+0

может, пожалуйста, дать мне часть кода. Я не знаю, как закодировать, и я уверен, что у меня получится огромная ошибка ... –

+0

У меня есть большой список для замены. будет ли 'Inputbox' поддерживать несколько итераций? –

ответ

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

Привет благодарю вас за код. но он только обновляет мою ячейку A1. Я даю входные данные Fname, Lname, Phone и Fisrtname, Lastname, Mobile. я делаю какую-либо ошибку здесь? –

+0

см. Отредактированный ответ. если он решил ваш вопрос, пожалуйста, отметьте его как принятый. Спасибо. – user3598756

+0

Я все равно получаю тот же результат. Обновляется только ячейка «A1». –

Смежные вопросы