|
239 / 150 / 41
Регистрация: 26.01.2019
Сообщений: 545
|
||||||
| 27.02.2019, 23:38 | ||||||
|
Фактически это проблемой/багом не является, но для меня было некоторое удивление, что в VBA есть ограничение на вложенные выражения (...(...(...(...)))). MS называют это "Слишком сложное выражение". Уж от VBA такого не ожидал.
Подозревал что вся проблема в большом количестве аргументов возводимых в степень. Заменил их на переменные. И тогда стала появляться ошибка Переполнение. ![]() Решение такого безобразия - разбивка выражения на отдельные части. Для матерых пользователей, наверное, это не будет новостью. Надеюсь, начинающим пригодится Кликните здесь для просмотра всего текста
0
|
||||||
| 27.02.2019, 23:38 | |
|
Ответы с готовыми решениями:
126
Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп] Обсуждение темы "Готовые решения, примеры и рекомендации начинающим на WPF" Проблемы с алгоритмом решения задачи |
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|||||||
| 28.02.2019, 01:44 | |||||||
|
GeoCod, работает, но в 34 строке Х уже не тот, который использовался для вычисления sinX2,sinX4,sinX6.
Что за задача, в которой потребовались такие длинные выражения? Это записывается как
1
|
|||||||
|
239 / 150 / 41
Регистрация: 26.01.2019
Сообщений: 545
|
||||
| 28.02.2019, 08:09 | ||||
![]() Да, надо было сказать что X и L2 - тестовые данные. По факту они также вычисляются. До этого не приходилось оперировать такими числами в коде, поэтому написал в более привычном виде ))
0
|
||||
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|||||||||||
| 19.04.2019, 17:42 | |||||||||||
|
Excel: Мастер функций подавляет точки останова и оператор Stop в пользовательской функции
Пишем простейшую функцию, вставляем оператор Stop и Msgbox.
При выделенной ячейке с функцией вызываем Мастер функций (Shift+F3) - появляется MsgBox, причем 2 раза! При изменении аргумента в поле ввода Мастера опять 2 раза появляется MsgBox. И вот почему 2 раза: в окне Мастера значение функции отображается дважды - под значениями аргументов и внизу окна, после надписи "Значение:". Видимо, эти две части окна делали разные люди, и каждый написал свой вызов функции ![]() Можно заметить, что после первого появления MsgBox меняется значение функции под аргументами, а после второго - внизу. Если написать функцию, которая возвращает новое значение при каждом вызове
![]() Вывод: не пользуйтесь Мастером функций для отладки пользовательской функции. При обычной вставке функции в ячейку точки останова и оператор Stop работают нормально.
1
|
|||||||||||
|
|
|
| 19.04.2019, 19:31 | |
|
Казанский, Спасибо за инфо!
А вот как происходит расчет функции Rnd, в .xll (на С++) Шаг/Итерация 1 - Выбираем функцию из списка, видим что рендомное значение посчиталось и равно 4827 (см.рис.1) Шаг/Итерация 2 - В библиотеки вторая итерация в этой же функции, теперь рендомное значение равно 5436 (см.рис.2) Шаг/Итерация 3 - Начинается самое интересное! Библиотека отработала, Excel дал возможность ввести данные. Вводим значение в функцию =1, видим в первом результате значение 4827 (первая итерация), во втором результате 5436 (вторая итерация), а в самой библиотеки видим новое (третье) рендомное значение 32391 (см. рис.3) Шаг/Итерация 4 - автоматически происходит следующий шаг в точке останова с новым рендомным значением в библиотеке 14604. т.е. это четвертая итерация (напомню, Excel пока недоступен (кроме ввода единицы), это расчет идет в библиотеке. Видим результат функции уже 32392 (это наше предыдущее 32391+1), второй результат 5436 в мастере (пока без сложения) (см. рис. 4) Шаг/Итерация 5 - заканчиваем ввод формулы в Excel, видим ужу новое рендомное значение в библиотеке 15724 (пятое), в мастере уже не видим, он закрылся. (см.рис.5) Шаг/Итерация 6 - итоговый результат функции 15725 - наше последнее рендомное пятое значение 15724 плюс введенная единица. (см.рис.6) При вводе данных в саму формулу, без мастера, итерация в библиотека одна (рис.7-8) ВЫВОД: Итераций через мастер функций в Excel для библиотек .xll еще больше, далее аналогично вышесказанному - работать через Мастером функций не рекомендуется.
2
|
|
|
|
|
| 19.04.2019, 23:29 | |
|
Добавлю к выводам: видимо мастер функций в Excel работает одинаково и с VBA транслятором/кодом и библиотеками СОМ и XLL, вызывая несколько раз функцию. Хоть эта информация не относится напрямую к теме VBA, посчитал, что будет интересен этот момент.
0
|
|
|
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
|
|
| 26.09.2022, 23:27 [ТС] | |
|
Прям не выдержал!
картина первая, хорошая: стартуемся с какой-то функции ... отлично! бегаем, работаем. потом ловим кетч в методе DeforeClose на закрытии книги и - все хорошо! в теле функции весь код жив! - переменные, объекты - бери, пользуй ... картина вторая, плохая: стартуемся как и выше, потом ловим кетч, к примеру на какой-то селекте прямо в "ЭтаКнига", бегаем там по циклу на выходя, отдаем DoEvent ... работаем дальше и ловим кетч в методе BeforeClose на закрытии книги и - все плохо! весь код сдох, все ушли на базу - ни переменных, ни объектов - ни-че-го! пустое поле! все NULL Не все системные события друг на друга так реагируют
0
|
|
| 26.09.2022, 23:27 | |
|
Бывший профессионал cs 1.6 просит решения проблемы USB устройство, проблемы и пути решения. Проблемы с выводом решения на стандартный поток Прошу помощи решения проблемы в перекрестном... Каковы возможные решения проблемы рывков в эмуляторе? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|