Ну, в зависимости от того, сколько клеток вы получили в вашем Range
объекте. Вы можете выбрать Application.Substitute
метод.
Я думаю, если вы используете метод / функцию, которая явно возвращает тип данных String
, вы будете в порядке. Поскольку Substitute
делает именно то, что вы можете попробовать, как показано ниже:
Sub Test
Range("A1:A2").Value = Application.Substitute(Range("A1:A2"), "2", "39456E10")
End Sub
Работая в предположении, ваш Range
уже отформатирован как "@"
. Если нет, вы можете включить это в код. Это также будет работать для 2D-массива большего масштаба, например: A1:Z1000
.
Например:
>
Я полагал, что то же самое относится, например, к методу RegEx.Replace
и функции Replace
(не ошибочно с методом Replace
), например. Что вместо вышеперечисленного потребовало бы итерации.
Просто забавный факт, с помощью Application.Substitute
мы могли бы также сказать VBA
, какое вхождение нашего поискового значения мы хотели бы заменить. Например, заменить только 2-й случай числа 2
:
Range("A1:A4") = Application.Substitute(Range("A1:A4"), "2", "39456E10", 2)
Однако, согласно @ Pᴇʜ его ответу , апостроф существует по причине ... =). Поэтому это будет моим личным предпочтением (и должно быть быстрее).