Я хотел бы знать, как запустить скрипт VBA для поиска и замены нескольких слов только на одном листе, а не во всей рабочей группе? - PullRequest
0 голосов
/ 24 января 2019

Я нашел скрипт vba для поиска и замены слов, но скрипт заменяет слова во всей книге, я хотел бы заменить слова только на определенном листе. Это код, который я нашел.

Sub Multi_FindReplace()
'PURPOSE: Find & Replace a list of text/values throughout entire workbook
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

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

fndList = Array("United States", "New York")
rplcList = Array("US", "NY")

'Loop through each item in Array lists
  For x = LBound(fndList) To UBound(fndList)
    'Loop through each worksheet in ActiveWorkbook
      For Each sht In ActiveWorkbook.Worksheets
        sht.Cells.Replace what:=fndList(x), Replacement:=rplcList(x), _
          LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False
      Next sht

  Next x

End Sub

1 Ответ

0 голосов
/ 24 января 2019

Просто удалите петлю листа и укажите имя листа в коде, где написано «Лист1».

Sub Multi_FindReplace()

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

fndList = Array("United States", "New York")
rplcList = Array("US", "NY")
Set sht = ActiveWorkbook.Worksheets("Sheet1")   'this is the relevant worksheet    
For x = LBound(fndList) To UBound(fndList)
   sht.Cells.Replace what:=fndList(x), Replacement:=rplcList(x), _
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
        SearchFormat:=False, ReplaceFormat:=False
Next x

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...