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