Макрос замены точки на запятую(меняем диапазон в макросе) Неудобство этого макроса в том,что надо менять необходимый диапазон в теле макроса( но у меня он всегда один, поэтому я не парюсь ) Очень полезен при обработке данных, выгруженных из 1С
Код
Sub Макрос777() Dim rn As Range For Each rn In Intersect([b:e], ActiveSheet.UsedRange) If rn Like "*#.#*" Then rn = Val(rn) ', ".", ",") rn.NumberFormat = "0.0000" End If Next End Sub
тот же макрос, но без внесения изменений в тело макроса Выделяем диапазон, запускаем макрос
Код
Sub TTT() Dim rn As Range Dim rr As Range Set rr = Intersect(Selection, ActiveSheet.UsedRange) For Each rn In Intersect(rr, ActiveSheet.UsedRange) If rn Like "*#.#*" Then rn = Val(rn) rn.NumberFormat = "0.0000" End If Next End Sub
для спасибов ЯД 41001877306852
Сообщение отредактировал irakitin2014 - Пятница, 16.02.2018, 11:11
А зачем там пересечение с UsedRange? Да еще двойное. Можно же просто
Код
For each rr in Selection
И еще обработку ошибок добавить
Код
on error ...
на случай, если выделен не диапазон
Upd: А! Я, кажется, понял логику. Если пользователь не обременяет себя лишними движениями мышкой и выделил сразу целый столбец. Чтож, очень даже... Ну тогда хотя бы второе пересечение давайте уберем )