'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] .не подскажете?
есть такой код [vba]
Код
Sub Multi_FindReplace() Dim sh As Worksheet Dim fndList As Variant Dim rplcList As Variant Dim x As Long
'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
Сообщение отредактировал lamak58 - Пятница, 15.07.2016, 12:53
В массиве "rplcList" только один элемент, а не столько же, сколько в массиве "fndList". Правильно так: [vba]
Код
Replacement:=rplcList(0)
[/vba] Или если всегда будет только один элемент, то вообще не используйте массив, а используйте просто переменную. Или вообще не используйте ни массив, ни переменную, а просто подставляйте нужный текст в параметр "Replacement".
В массиве "rplcList" только один элемент, а не столько же, сколько в массиве "fndList". Правильно так: [vba]
Код
Replacement:=rplcList(0)
[/vba] Или если всегда будет только один элемент, то вообще не используйте массив, а используйте просто переменную. Или вообще не используйте ни массив, ни переменную, а просто подставляйте нужный текст в параметр "Replacement".Karataev
Сообщение отредактировал Karataev - Пятница, 15.07.2016, 13:45