Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/массовая замена и поиск - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » массовая замена и поиск (Макросы/Sub)
массовая замена и поиск
lamak58 Дата: Пятница, 15.07.2016, 12:49 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
есть такой код
[vba]
Код
Sub Multi_FindReplace()
Dim sh As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("2å-(", "2-(", ")", ")", ")3å-(", "1-(", "ñ-(")
rplcList = Array("")

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

End Sub
[/vba]
при выполнении почему то ругается на out of range на выделенное тегом  [color=red] .не подскажете? %)


Сообщение отредактировал lamak58 - Пятница, 15.07.2016, 12:53
 
Ответить
Сообщениеесть такой код
[vba]
Код
Sub Multi_FindReplace()
Dim sh As Worksheet
Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("2å-(", "2-(", ")", ")", ")3å-(", "1-(", "ñ-(")
rplcList = Array("")

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

End Sub
[/vba]
при выполнении почему то ругается на out of range на выделенное тегом  [color=red] .не подскажете? %)

Автор - lamak58
Дата добавления - 15.07.2016 в 12:49
Karataev Дата: Пятница, 15.07.2016, 13:40 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 887
Репутация: 334 ±
Замечаний: 0% ±

Excel
В массиве "rplcList" только один элемент, а не столько же, сколько в массиве "fndList".
Правильно так:
[vba]
Код
Replacement:=rplcList(0)
[/vba]
Или если всегда будет только один элемент, то вообще не используйте массив, а используйте просто переменную. Или вообще не используйте ни массив, ни переменную, а просто подставляйте нужный текст в параметр "Replacement".




Сообщение отредактировал Karataev - Пятница, 15.07.2016, 13:45
 
Ответить
СообщениеВ массиве "rplcList" только один элемент, а не столько же, сколько в массиве "fndList".
Правильно так:
[vba]
Код
Replacement:=rplcList(0)
[/vba]
Или если всегда будет только один элемент, то вообще не используйте массив, а используйте просто переменную. Или вообще не используйте ни массив, ни переменную, а просто подставляйте нужный текст в параметр "Replacement".

Автор - Karataev
Дата добавления - 15.07.2016 в 13:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » массовая замена и поиск (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!