|
|
|
Как вернуть таблицу результатом пользовательской функции excel vba?
|
|||
|---|---|---|---|
|
#18+
Приветствую! Есть набор vba-макросов в рабочей книге excel. Одна из функций должна в качестве результата вернуть таблицу. То-есть функция находится в ячейке, а таблица-результат её выполнения выводится в несколько ячеек - в саму ячейку с функцией и в близлежащие ячейки (направо и вниз) до формирования полноценной таблицы на рабочем листе. Пробовал подобрать символы форматирования таблицы, но в результате экспериментов пришёл к выводу, что выйти за пределы одной ячейки таким образом не удастся. Кто сталкивался с решением такой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2011, 10:45 |
|
||
|
Как вернуть таблицу результатом пользовательской функции excel vba?
|
|||
|---|---|---|---|
|
#18+
См. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2011, 11:04 |
|
||
|
Как вернуть таблицу результатом пользовательской функции excel vba?
|
|||
|---|---|---|---|
|
#18+
Akina, Замечательный вариант, как раз то, что нужно. Спасибо! Озвучу, если кому пригодится. Результат функции можно распределить на диапазон ячеек. то-есть: выделяем диапазон, вводим формулу и волшебной комбинацией Ctrl-Shift-Enter распределяем результат функции на данный диапазон. Результат функции должен возвращаться в виде массива. Вобщем, учимся пользоваться excel в качестве оператора таблиц)) Кстати, при таком подходе было-бы важно прочитать размер выделенного диапазона внутри вызова функции без явной передачи его в качестве параметра. Уже сталивался прежде, но не решил. Кто-нибудь так делал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2011, 11:58 |
|
||
|
Как вернуть таблицу результатом пользовательской функции excel vba?
|
|||
|---|---|---|---|
|
#18+
LTEКстати, при таком подходе было-бы важно прочитать размер выделенного диапазона внутри вызова функции без явной передачи его в качестве параметра. Уже сталивался прежде, но не решил. Кто-нибудь так делал?Для этого надо: 1) Получить размер области, которую следует выделить. Это несложно - вызываем функцию программно и через UBOUND/LBOUND узнаём размер массива по каждому из измерений. 2) Выделить область требуемого размера. А вот тут грабли - из пользовательской функции, выполняемой через формулу на листе, такая операция недоступна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2011, 12:46 |
|
||
|
Как вернуть таблицу результатом пользовательской функции excel vba?
|
|||
|---|---|---|---|
|
#18+
AkinaLTEКстати, при таком подходе было-бы важно прочитать размер выделенного диапазона внутри вызова функции без явной передачи его в качестве параметра. Уже сталивался прежде, но не решил. Кто-нибудь так делал?Для этого надо: 1) Получить размер области, которую следует выделить. Это несложно - вызываем функцию программно и через UBOUND/LBOUND узнаём размер массива по каждому из измерений. 2) Выделить область требуемого размера. А вот тут грабли - из пользовательской функции, выполняемой через формулу на листе, такая операция недоступна. Я понял, но имел ввиду наоборот. Вопрос стоял лишь в доступе к размерам выделенной пользователем области. Свойства Selection.rows.count и Selection.columns.count. Ваш вариант, если я правильно понял, был для расширения диапазона вывода массива в рабочем листе, если результирующая таблица имеет большее измерение, чем область на рабочем листе. Получилась функция, размазывающая таблицу из запроса в access по выделенной области рабочего листа. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2011, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37528842&tid=2176271]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 441ms |

| 0 / 0 |
