Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.10.2019, 10:40
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
Есть написанная на VBA функция, которая используется в формуле массива - т.е. она принимает некоторые аргументы и возвращает двумерный массив вариантов. Всё пока обычно. Есть необходимость улучшить и упростить расчёт - однако для этого необходимо определить, в какой именно диапазон (адрес типа "$A$10:$C$20" вполне достаточен) вводится эта формула массива. Это будет влиять на итоги, а заодно позволит избавиться от #Н/Д, если массив-результат меньше этого диапазона. Пытался вспомнить, видел ли где - не вспомнил. Пытался искать - всё не то... Если кто помнит решение - ткните пальцем. Или хотя бы от чего плясать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 10:45
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
конкретики мало, может хоть определение самой функции показать, что за параметры там и как вызов происходит ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 10:48
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
https://support.office.com/en-us/article/areas-function-8392ba32-7a41-43b3-96b0-3695d2ec6152 AREAS() ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 10:50
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
https://support.office.com/en-us/article/hlookup-function-a3034eec-b719-4ba3-bb65-e1ad662ed95f HLOOKUP() ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 10:51
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
https://support.office.com/en-us/article/address-function-d0c26c0d-3991-446b-8de4-ab46431d4f89 ADDRESS() ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 11:07
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
Akina, вроде Application.caller про это - на бегу плохо помню если только диапазон - должно хватить попробуй если не поедет - напиши - вечером поищу скрижали лет 10 назад где-то что-то использовал, можно поискать... а если еще "старое значение" в этом месте нужно, то надо по форуму полазить - тогда же мне это надо было и я даже тему заводил. все прахом в памяти... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 11:09
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
booby, да, наверно в офисной ветке оно было... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 11:15
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
booby, точно, для формулы массива - Debug.Print Application.Caller.Address ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 11:15
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
Konst_Oneконкретики мало, может хоть определение самой функции показать, что за параметры там и как вызов происходитДа чхать на текст функции. Грубо - есть некая Код: vbnet 1. 2. 3. 4. 5.
Мы на листе выделяем некий диапазон, скажем A10:C20, вводим формулу =MyFunc(A1:B4) и жмём Ctrl-Shift-Enter. Задача - внутри функции, кодом, получить диапазон "$A$10:$C$20". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 11:29
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
boobyдля формулы массива - Debug.Print Application.Caller.AddressСпасибо, оно... Только почему-то под отладкой оно даёт "Error", а без отладки - нормально возвращает адрес. Странно... но буду смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 12:42
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
Akinaboobyдля формулы массива - Debug.Print Application.Caller.AddressСпасибо, оно... Только почему-то под отладкой оно даёт "Error", а без отладки - нормально возвращает адрес. Странно... но буду смотреть. под отладкой Vartype(Application.caller) = 10 и Typename(Application.caller) = "Error" а тебе нужен Typename(Application.caller) = "Range" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 13:06
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
booby , хуже - нет стабильности. Под отладкой Typename(Application.caller) то "Range", то "Error" - и я всё никак не могу уловить, от чего это зависит. А в рантайме всё шоколадно. Приходится отлаживаться через debug.pring и msgbox - не совсем удобно, но и не страшно, не впервой. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.10.2019, 14:00
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
Akina, msgbox не надо - плохо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.10.2019, 21:08
|
|||
---|---|---|---|
Excel. Определить диапазон формулы массива. |
|||
#18+
Akina booby , хуже - нет стабильности. Под отладкой Typename(Application.caller) то "Range", то "Error" - и я всё никак не могу уловить, от чего это зависит. Так как функция ожидает, что Application.Caller имеет тип Range, то и при отладке это нужно обеспечить. Например, так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2154869]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 409ms |
0 / 0 |