Макрос Excel: Замените enitre содержание ячейки; замените 1, но не 10, 11, 21 и т.д.

Я должен заменить большую сумму чисел со словами в электронной таблице Excel. Например:

1 = hello
12 = goodbye
4 = cat

и т.д. Я могу сделать это со стандартным поиском и заменой, но у меня есть большой список для работы через (приблизительно 240 комбинаций числа/слова), таким образом, я полагал, что буду использовать макрос.

У меня есть это:

Sub findreplacer()
For Each mycell In Range("A1:A1000")
mycell.Replace What:="1", Replacement:="hello"
mycell.Replace What:="12", Replacement:="goodbye"
mycell.Replace What:="4", Replacement:="cat"
Next

End Sub

Но это заменяет 1 в 12, таким образом, ячейка читает hello2 вместо до свидания. Как я могу сделать его просто затронуть клетки, которые только содержат определенное число, путь 'соответствуют всем работам' содержания ячейки?

Любая справка ценится.

0
задан 13.09.2018, 07:13

2 ответа

Изменение порядка прекрасно, пока каждое значение в листе будет замененным. Если Ваш лист содержал 11, хотя это не было замененным, затем изменение порядка все еще заменит его hello1.
Для использования соответствия вся ячейка указывают

,LookAt:=xlWhole

как другой параметр к методу Замены. Замена является действительным методом для Диапазона, таким образом, Ваш Для цикла не необходим. Можно вместо этого указать

Range("A1:A1000").Replace What:="12", Replacement:="goodbye", LookAt:=xlWhole  
Range("A1:A1000").Replace What:="4", Replacement:="cat", LookAt:=xlWhole
6
ответ дан 24.11.2019, 02:47

Я не уверен, существует ли лучшее решение, но что это говорит в моем уме, помещается их в обратном порядке. Например:

Sub findreplacer()
For Each mycell In Range("A1:A1000")
mycell.Replace What:="12", Replacement:="goodbye"
mycell.Replace What:="4", Replacement:="cat"
mycell.Replace What:="1", Replacement:="hello"
Next

End Sub

В этом случае, 12 был бы заменен "до свидания" сначала, и когда строка, которая заменяет 1 "привет", приходит, это уже изменилось бы.

Снова, существует, вероятно, лучшее решение, но я думаю, что это работало бы на быстрое исправление в параметрах, которые Вы описали.

1
ответ дан 24.11.2019, 02:47

Теги

Похожие вопросы