Здравствуйте.имеится макрос преобразования ячейки текста в число
он работает но если ячейка F пустая то в ячейки появляется 0,0 как сделать чтобы он перепрыгивал пустые ячейки то есть пустые ячейки должны оставаться пустыми
Вот сам макрос:
[vba]
Код
Sub Text_to_Number() Dim Zelle As Range On Error Resume Next For Each Zelle In Range("F13:F100") Zelle.Value = 1 * Zelle.Value Next Range("F13:F100").NumberFormat = "#,##0.0" End Sub
[/vba]
Здравствуйте.имеится макрос преобразования ячейки текста в число
он работает но если ячейка F пустая то в ячейки появляется 0,0 как сделать чтобы он перепрыгивал пустые ячейки то есть пустые ячейки должны оставаться пустыми
Вот сам макрос:
[vba]
Код
Sub Text_to_Number() Dim Zelle As Range On Error Resume Next For Each Zelle In Range("F13:F100") Zelle.Value = 1 * Zelle.Value Next Range("F13:F100").NumberFormat = "#,##0.0" End Sub
Например, так (это если в Вашем макросе не менять принцип действия, а только поставить ограничение на пусто): [vba]
Код
Sub Text_to_Number() Dim Zelle As Range On Error Resume Next For Each Zelle In Range("F13:F100") if Zelle.value<>"" then Zelle.Value = 1 * Zelle.Value end if Next Range("F13:F100").NumberFormat = "#,##0.0" End Sub
[/vba]
Например, так (это если в Вашем макросе не менять принцип действия, а только поставить ограничение на пусто): [vba]
Код
Sub Text_to_Number() Dim Zelle As Range On Error Resume Next For Each Zelle In Range("F13:F100") if Zelle.value<>"" then Zelle.Value = 1 * Zelle.Value end if Next Range("F13:F100").NumberFormat = "#,##0.0" End Sub
Кстати, буквально вчера был задан примерно такой же вопрос. И ответ (жмакнуть Ctrl+Space, Ctrl+Shift+!, Ctrl+H и заменить разделитель на разделитель) я решил попробовать записать рекордером. И такой же облом - rng.Replace преобразует число, переставляя запятую по формату. А ручками через "Найти и заменить" - всё нормально, запятая на месте... причем установка/сброс Application.ReplaceFormat.NumberFormat и использование ReplaceFormat:=True в rng.Replace - как-то странно себя ведут, то заменяя, то не заменяя... А так бы было хорошо - замена в одну (или три) строчки кода.
Кстати, буквально вчера был задан примерно такой же вопрос. И ответ (жмакнуть Ctrl+Space, Ctrl+Shift+!, Ctrl+H и заменить разделитель на разделитель) я решил попробовать записать рекордером. И такой же облом - rng.Replace преобразует число, переставляя запятую по формату. А ручками через "Найти и заменить" - всё нормально, запятая на месте... причем установка/сброс Application.ReplaceFormat.NumberFormat и использование ReplaceFormat:=True в rng.Replace - как-то странно себя ведут, то заменяя, то не заменяя... А так бы было хорошо - замена в одну (или три) строчки кода.AndreTM
Андрей, использовать "," разделителем разрядов проблемно в локалях. У мну запятая - разделитель дробной части, поэтому ахинею выдает. Пробел д.б. универсальней. Наверняка и у ТС из-за этого проблема. P.S. Андрюх, у тебя мой макрос работает на примере ТС?
Андрей, использовать "," разделителем разрядов проблемно в локалях. У мну запятая - разделитель дробной части, поэтому ахинею выдает. Пробел д.б. универсальней. Наверняка и у ТС из-за этого проблема. P.S. Андрюх, у тебя мой макрос работает на примере ТС?KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Четверг, 07.11.2013, 19:20
Timsan, надо себя нормально вести на форуме. Вы не отвечаете на вопросы(см. пост №11), выкладываете ЛЕВЫЙ пример, с другой структурой данных. А раз так, значит уверены, что сможете изменить предложенное решение под свою структуру. Являетесь на форум через неделю - не работает. С такими заявлениями на форум гадалок. Я Вам написал макрос, подсказал где взять пример для нескольких столбцов - что еще надо, куда еще нормальней? Мне не настолько нечего делать, чтоб по нескольку раз переписывать программу из-за Вашей халатности и пофигизма. Впрочем подскажу куда. Раз ничего не знаю, вникать не хочу, хочу готовое, это сюда: http://www.excelworld.ru/forum/6 Но и там понадобится пример с реальной структурой и расположением данных.
Timsan, надо себя нормально вести на форуме. Вы не отвечаете на вопросы(см. пост №11), выкладываете ЛЕВЫЙ пример, с другой структурой данных. А раз так, значит уверены, что сможете изменить предложенное решение под свою структуру. Являетесь на форум через неделю - не работает. С такими заявлениями на форум гадалок. Я Вам написал макрос, подсказал где взять пример для нескольких столбцов - что еще надо, куда еще нормальней? Мне не настолько нечего делать, чтоб по нескольку раз переписывать программу из-за Вашей халатности и пофигизма. Впрочем подскажу куда. Раз ничего не знаю, вникать не хочу, хочу готовое, это сюда: http://www.excelworld.ru/forum/6 Но и там понадобится пример с реальной структурой и расположением данных.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
У Вас есть код для одного столбца. Вам нужно сделать чтоб код работал на четыре столбца. И что, никаких мыслей? Т.к. в данном случае использован механизм, который работает именно с одним столбцом - то первая мысль и будет правильной: выполнить код 4 раза, меняя столбец. Сама реализация - дело второстепенное, можно тупо 4 раза выполнить 4 похожих кода, можно в цикле менять диапазон через offset или перебором массива с перечнем диапазонов, или... Нужно смотреть конкретно по месту, по задаче. Подсказал?
P.S. Timsan, Вам тут никто ничем не обязан. Так что сбавьте пожалуйста обороты... Можно ведь иначе высказаться?
У Вас есть код для одного столбца. Вам нужно сделать чтоб код работал на четыре столбца. И что, никаких мыслей? Т.к. в данном случае использован механизм, который работает именно с одним столбцом - то первая мысль и будет правильной: выполнить код 4 раза, меняя столбец. Сама реализация - дело второстепенное, можно тупо 4 раза выполнить 4 похожих кода, можно в цикле менять диапазон через offset или перебором массива с перечнем диапазонов, или... Нужно смотреть конкретно по месту, по задаче. Подсказал?
P.S. Timsan, Вам тут никто ничем не обязан. Так что сбавьте пожалуйста обороты... Можно ведь иначе высказаться?Hugo