![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
Доброго времени суток, уважаемые форумчане!
Большая просьба поправить макрос, не могу понять где ошибка. Суть в том, что, если в столбцах "I:K", знак " . " заменить вручную на " , " (точку на запятую), то в цифрах у которых после "точки" было к примеру шесть знаков, то получается верное значение (ячейка I36 = 786,016309). А если использовать макрос файла, то значение получается целое (ячейка I36 = 786 016 309) Columns("I:K").Select Range("I4").Activate Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False |
![]() |
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
а так:
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 11.01.2016 в 19:32. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
IgorGO
Большое спасибо! Заменил свою часть макроса, которую писал мастером на Ваш код, все работает... Еще раз, большое спасибо! |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.06.2015
Сообщений: 100
|
![]()
доброго времени суток,попробуйте делать замену еще таким макросом
кнопка yyy Код:
|
![]() |
![]() |
![]() |
#5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
отличный макрос, есть только 3 замечания:
1. очевидно, что он более громоздкий 2. он существенно медленнее (предположу, что очень существенно) 3. упростите Ваш макрос вот до такой записи и все будет точно так же работать Код:
когда в Екселе разделитель целой и дробной части запятая то запись 5.45 в ячейке - это для Ексель "5.45", но, когда это 5.45 попадает в массив с необьявленным типом данных (читай с типом Variant) вот тут-то VBA точно видит "так это же пять целых сорок пять сотых!" и потом при возврате массива на лист Ексель добросовестно вместо точки ставит свой разделитель (запятую)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 12.01.2016 в 02:03. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
![]()
Еще раз спасибо за то, что не оставили тему без внимания! Варианты очень интересные и обязательно применю их в работу.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.06.2015
Сообщений: 100
|
![]()
добрый день,добавлю,макрос в #2 замечательный,но имеется недостаток-это использование квадратных скобок,что замедляет скорость выполнения кода на 70%,посмотрите с.323 Джон Уокенбах,2014,"Microsoft Excel2013
Профессиональное программирование на VBA". |
![]() |
![]() |
![]() |
#8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
спасибо! теперь буду знать
и заодно будем считать, что я теперь знаком с книгой "Microsoft Excel2013 Профессиональное программирование на VBA", ну... не со всей книгой, а с фрагментом с 383 страницы - точно!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Хорошо что не замедляет выполнение всего кода... Или всего? Напугали...
![]() Вообще я тоже читал что быстрее работает Range("x"), но быстрее писать [] (выполняется Evaluate). Да и фиг с ним ![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрет ввода в TextBox букв и . (точки) / Или автозамена точки на запятую | uralshans | Microsoft Office Excel | 4 | 30.08.2013 00:24 |
даны две точки. организовать движение из точки А в точку Б окружности! | Wi1D | Помощь студентам | 6 | 23.05.2009 19:55 |
замена многоточий на точки(ассемблер) | Shnaps151 | Помощь студентам | 1 | 20.05.2009 12:47 |
Замена точки на запятую | SIV84 | Microsoft Office Excel | 1 | 11.01.2009 11:16 |
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть | Дикий | Помощь студентам | 7 | 12.05.2008 17:57 |