Я знаю, что это совершенно неправильно, но на данный момент я действительно не знаю, как это сделать.VBA (Microsoft Excel) заменить Array на String
В Microsoft Excel я хочу заменить все значения в строке «OldValues» фиксированной строкой «NewValue». Как это возможно?
LBound и Ubound неправильно использовать, не так ли?
Sub Replace()
Dim sht As Worksheet
Dim OldValues As Variant
Dim NewValue As String
Dim x As Long
OldValue = Array("old1","old2","old3")
NewValue = "allnew!"
For x = LBound(OldValue) To UBound(NewValue)
For Each sht In ActiveWorkbook.Worksheets
sht.Cells.Replace What:=OldValue(x), Replacement:=NewValue(x), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next sht
Next x
End Sub
Ницца. Не знаю, правильно ли функция LBound & Ubound (как я понял, они существуют для создания цикла поиска по массиву?), Поэтому я не знал, как заставить его работать. –
При использовании с массивом они ссылаются на верхнюю и нижнюю границы индекса, поэтому с массивом «Array» («old1», «old2», «old3») '-' LBound' будет 0, а 'UBound' будет 2 – Jordan
@MiguelRasquinho. Альтернативно вы можете выполнять итерацию по массиву с использованием переменной типа варианта и для каждой петли. 'Dim x как вариант: для каждого x в OldValues' –