Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель 22.08.2024 от 23 августа 2024, 10:48

Название: Не удаётся заменить запятую точкой
Отправлено: Посетитель 22.08.2024 от 23 августа 2024, 10:48
Здравствуйте !
Подскажите, пожалуйста, не работает этот макрос в этом столбце.

Спойлер
Columns("O:O").NumberFormat = "@" ' Делаем текстовый формат, т.к. точку можно добавить только в нём
    Columns("O:O").Replace What:=",", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=True, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 ' Меняем запятую на точку
[свернуть]
В других случаях работал.
Макрос не видит запятую. При постановке других символов, цифр, например, замену производит.

Название: Не удаётся заменить запятую точкой
Отправлено: Администратор от 23 августа 2024, 10:51
Команда Replace даёт неправильный результат.
Вместо команды Replace используйте какой-нибудь другой способ замены запятой на точку.
Вчера как раз я это и пробовал делать и не получилось, после чего предложил вам использовать апостроф. При использовании Replace число превращалось в дату, не смотря на то, что в столбце был Текстовый формат.
Название: Не удаётся заменить запятую точкой
Отправлено: Посетитель 22.08.2024 от 23 августа 2024, 11:14
Через апостроф получилось, спасибо !
Название: Не удаётся заменить запятую точкой
Отправлено: Администратор от 23 августа 2024, 11:57
Можно не использовать апостроф, чтобы не усложнять ситуацию, т.к. в ячейке появляется лишний символ.
Достаточно использовать то, что вы раньше использовали:
1) сделайте в столбце Текстовый формат;
2) и такой код: Cells(i, 14).Value = Replace(Cells(i, 14).Value, ",", "."). Взято из предыдущей вашей темы.
Название: Не удаётся заменить запятую точкой
Отправлено: Посетитель 22.08.2024 от 23 августа 2024, 12:13
Ага, спасибо !