Скорость преобразования функции CInt()
pabchek
Дата: Четверг, 26.01.2017, 10:58 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
Доброго дня! Подскажите начинающему, плз. Попробовал сделать пользовательскую функцию чтобы не писать каждый раз коротенькую формулу. И столкнулся с тем, что макрос работает очень медленно, тогда как формула практически мгновенно. В примере всего 5 тыс. строк, а в рабочих файлах сотни тысяч. Тормозит серьезно. Формула Функция [vba]Код
Function Не_равно(x, y) Не_равно = -CInt(x = y) End Function
[/vba]
Доброго дня! Подскажите начинающему, плз. Попробовал сделать пользовательскую функцию чтобы не писать каждый раз коротенькую формулу. И столкнулся с тем, что макрос работает очень медленно, тогда как формула практически мгновенно. В примере всего 5 тыс. строк, а в рабочих файлах сотни тысяч. Тормозит серьезно. Формула Функция [vba]Код
Function Не_равно(x, y) Не_равно = -CInt(x = y) End Function
[/vba] pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Ответить
Сообщение Доброго дня! Подскажите начинающему, плз. Попробовал сделать пользовательскую функцию чтобы не писать каждый раз коротенькую формулу. И столкнулся с тем, что макрос работает очень медленно, тогда как формула практически мгновенно. В примере всего 5 тыс. строк, а в рабочих файлах сотни тысяч. Тормозит серьезно. Формула Функция [vba]Код
Function Не_равно(x, y) Не_равно = -CInt(x = y) End Function
[/vba] Автор - pabchek Дата добавления - 26.01.2017 в 10:58
Pelena
Дата: Четверг, 26.01.2017, 11:19 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация:
4420
±
Замечаний:
±
Excel 365 & Mac Excel
Здравствуйте. Почему CInt, а не Not?
Здравствуйте. Почему CInt, а не Not? Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Здравствуйте. Почему CInt, а не Not? Автор - Pelena Дата добавления - 26.01.2017 в 11:19
buchlotnik
Дата: Четверг, 26.01.2017, 11:22 |
Сообщение № 3
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
а может проще так? [vba]Код
Function Не_равно(x, y) Не_равно = Not (x=y) End Function
[/vba]
а может проще так? [vba]Код
Function Не_равно(x, y) Не_равно = Not (x=y) End Function
[/vba] buchlotnik
Сообщение отредактировал buchlotnik - Четверг, 26.01.2017, 11:29
Ответить
Сообщение а может проще так? [vba]Код
Function Не_равно(x, y) Не_равно = Not (x=y) End Function
[/vba] Автор - buchlotnik Дата добавления - 26.01.2017 в 11:22
pabchek
Дата: Четверг, 26.01.2017, 11:32 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
ответ один - потому что чайник)) Но.... работает так же медленно И дает булево значение, а не цифру
ответ один - потому что чайник)) Но.... работает так же медленно И дает булево значение, а не цифруpabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Сообщение отредактировал pabchek - Четверг, 26.01.2017, 11:35
Ответить
Сообщение ответ один - потому что чайник)) Но.... работает так же медленно И дает булево значение, а не цифруАвтор - pabchek Дата добавления - 26.01.2017 в 11:32
pabchek
Дата: Четверг, 26.01.2017, 11:43 |
Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
Булево поборол [vba]Код
Function Не_равно(x, y) Не_равно = -Not (x = y) End Function
[/vba] Скорость нет
Булево поборол [vba]Код
Function Не_равно(x, y) Не_равно = -Not (x = y) End Function
[/vba] Скорость нет pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Ответить
Сообщение Булево поборол [vba]Код
Function Не_равно(x, y) Не_равно = -Not (x = y) End Function
[/vba] Скорость нет Автор - pabchek Дата добавления - 26.01.2017 в 11:43
buchlotnik
Дата: Четверг, 26.01.2017, 12:08 |
Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
а какова конечная цель? функцию в личную книгу макросов положить, или это для конкретного файла?
а какова конечная цель? функцию в личную книгу макросов положить, или это для конкретного файла? buchlotnik
Ответить
Сообщение а какова конечная цель? функцию в личную книгу макросов положить, или это для конкретного файла? Автор - buchlotnik Дата добавления - 26.01.2017 в 12:08
pabchek
Дата: Четверг, 26.01.2017, 12:32 |
Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
В личную книгу. Для конкретного можно и просто формулу один раз написать)) Да и просто интересно. Как сделать чтобы быстро было.
В личную книгу. Для конкретного можно и просто формулу один раз написать)) Да и просто интересно. Как сделать чтобы быстро было. pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Сообщение отредактировал pabchek - Четверг, 26.01.2017, 12:33
Ответить
Сообщение В личную книгу. Для конкретного можно и просто формулу один раз написать)) Да и просто интересно. Как сделать чтобы быстро было. Автор - pabchek Дата добавления - 26.01.2017 в 12:32
_Boroda_
Дата: Четверг, 26.01.2017, 15:44 |
Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
макрос работает очень медленно, тогда как формула практически мгновенно
Виктор, тут дело в том, что зашитые в Excel формулы написаны на С++, а он быстрее VBA Также VBA вроде не поддерживает многопроцессорность, а большинство формул поддерживают Поэтому для стандартных случаев обычно функции пользователя медленнее встроенных.
макрос работает очень медленно, тогда как формула практически мгновенно
Виктор, тут дело в том, что зашитые в Excel формулы написаны на С++, а он быстрее VBA Также VBA вроде не поддерживает многопроцессорность, а большинство формул поддерживают Поэтому для стандартных случаев обычно функции пользователя медленнее встроенных._Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение макрос работает очень медленно, тогда как формула практически мгновенно
Виктор, тут дело в том, что зашитые в Excel формулы написаны на С++, а он быстрее VBA Также VBA вроде не поддерживает многопроцессорность, а большинство формул поддерживают Поэтому для стандартных случаев обычно функции пользователя медленнее встроенных.Автор - _Boroda_ Дата добавления - 26.01.2017 в 15:44
pabchek
Дата: Пятница, 27.01.2017, 09:29 |
Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
Александр, как всегда, все доходчиво и понятно. Спасибо!
Александр, как всегда, все доходчиво и понятно. Спасибо!pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Ответить
Сообщение Александр, как всегда, все доходчиво и понятно. Спасибо!Автор - pabchek Дата добавления - 27.01.2017 в 09:29