|
|
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
Нужна функция, которая сама определяет конец массива в столбце (столбцах) и пишет вычисляемое значение в соседнем столбце (столбцах). В поцедуре все просто. Здесь все работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Однако нужна именно функция. Как-бы ее такую сделать? "Есть многое на свете, друг Горацио, что и не сразу в голову придет." М. Твен "Приключения Геккельбери Финна" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 12:07 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
Не работает при вызове из ячейки листа типа =FilterB(с1). Что, собственно и нужно. "Есть многое на свете, друг Горацио, что и не сразу в голову придет." М. Твен "Приключения Геккельбери Финна" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 12:10 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
а шо в ошибке пишет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 13:44 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
короч, так работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 13:57 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
Korcarкороч, так работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. У меня это не работает. Пишет, что циклическая ссылка. Но эт не выход. X и Y соовершенно необязательно рядом и м.б где угодно. Помог бы некий виртуальный Range, но я такого не знаю. Переменнная Тс это просто случайные остатки реальной программы. Пробуем на кошках.:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 14:42 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
YUBAОднако нужна именно функция. Как-бы ее такую сделать?Никак. Функция не может изменять значения ячеек. Это осознанный запрет введеный разработчиками. Читай справку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 17:49 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
Я это знаю. Однако адресом, ИМХО, м.б. Range. Скажем, как будем, например, делать операции с матрицами? В каждую ячейку свою функцию пихать? ИМХО, бред. И, самое интересное, такие функции существуют - откройте встроенные функции. "Есть многое на свете, друг Горацио, что и не сразу в голову придет." М. Твен "Приключения Геккельбери Финна" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 21:43 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
White OwlYUBAОднако нужна именно функция. Как-бы ее такую сделать?Никак. Функция не может изменять значения ячеек. Это осознанный запрет введеный разработчиками. Читай справку. Ладно. Давайте запустим макрос, начинающийся с инпутбокса, аналогичного вызову функции. Форму сделаем, а какие туда ставить элементы для ввода ячеек? - эт не знаю. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 22:09 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
ЗЫ И еще передать туда щелчок мыши на листе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 22:20 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
YUBAЯ это знаю. Однако адресом, ИМХО, м.б. Range. Скажем, как будем, например, делать операции с матрицами? В каждую ячейку свою функцию пихать? ИМХО, бред.Твое О не верно. Хочешь с матрицами работать, делай sub или в каждую ячейку итоговой матрицы пиши вызов функции. YUBAИ, самое интересное, такие функции существуют - откройте встроенные функции.Ну открой... Покажи конкретно, какая функция умеет изменять значение чужих ячеек. YUBAЛадно. Давайте запустим макрос, начинающийся с инпутбокса, аналогичного вызову функции. Форму сделаем, а какие туда ставить элементы для ввода ячеек? - эт не знаю. :(Это уже другой разговор. Код: plaintext 1. 2. Хочешь запускать свой макрос по щелчку мыши - перехватывай Worksheet_SelectionChange. Примеров тут на форуме полно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 22:43 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
White Owl[ Код: plaintext 1. 2. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 23:37 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
White OwlYUBA [quot YUBA]И, самое интересное, такие функции существуют - откройте встроенные функции.Ну открой... Покажи конкретно, какая функция умеет изменять значение чужих ячеек. ТРАНСП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2009, 23:43 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
White Owl YUBAИ еще передать туда щелчок мыши на листе?Куда "туда"? В работающий макрос? Никак. Пока макрос не закончится, никаких щелчков мыши на листе быть не может. Хочешь запускать свой макрос по щелчку мыши - перехватывай Worksheet_SelectionChange. Примеров тут на форуме полно. Когда форма открыта для ввода, с листом можно делать что угодно, Хотя находишься в макросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2009, 01:50 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
Мне кажется что вполне можно стандартными функциями обойтись и ничего не городить своего. Опишите задачу с примером если хотите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2009, 11:11 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
Функция может возвращать массив. Но ее нужно и вводить как функцию массива по Ctrl-Shift-Enter. Об этом, кстати, упоминается и в справке по штатной функции ТРАНСП(), которая приводилась здесь как пример. Вот пример кода пользовательской функции транспонирования массива, выдающая результат сразу в несколько ячеек: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Файл примера прилагается. Аналогично можно выпонить и другие функции, результатом которых будет массив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2009, 22:44 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
YUBAWhite Owl[ Код: plaintext 1. 2. Код: plaintext 1. Та которая принадлежит библиотеке VBA (и является общей с остальными продуктами Офиса) не имеет параметра Type. А тот InputBox который принадлежит самому Экселю и является методом объекта Application имеет параметр Type... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2009, 19:09 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
YUBAWhite OwlYUBA [quot YUBA]И, самое интересное, такие функции существуют - откройте встроенные функции.Ну открой... Покажи конкретно, какая функция умеет изменять значение чужих ячеек. ТРАНСПИ где там изменение ЧУЖИХ ячеек? Каждая из ячеек получающая результат будет имеет в себе копию функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2009, 19:15 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
DeggasadМне кажется что вполне можно стандартными функциями обойтись и ничего не городить своего. Опишите задачу с примером если хотите. повторюсь, но третий раз предлагать не буду чтобы вы зря не спорили: никакая функция листа, в т.ч. самописная не может изменять значений других ячеек или прочих объектов Эксель. По моему есть какое-то исключение, запамятовал (нужно на форуме поискать, то ли примечания менять можно, то ли что-то такое), но вспоминать не буду, т.к. это дела не меняет. Если хотите выложите пример той задачки, которую нужно решать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2009, 20:11 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
White OwlYUBA ТРАНСП И где там изменение ЧУЖИХ ячеек? Каждая из ячеек получающая результат будет имеет в себе копию функции. Чужих ячеек функция изменять не может, это правда, но может менять сразу несколько своих, если она введена как (одна) функция массива. Функция массива, введенная не в одну ячейку, а в диапазон ячеек (выделить диапазон, ввести формулу массива одну для всего диапазона, нажать Ctrl-Shift-Enter - см. приложенный выше пример) - это не одно и то же, как если бы ввести функцию в каждую из ячеек этого диапазона. То есть, утверждение , что «каждая из ячеек получающая результат будет иметь в себе копию функции» некорректно. Главное отличие и преимущество функции массива, возвращающей массив, заключается в том, что медленный вызов пользовательской VBA-функции из объектной модели Excel выполняется один раз для заполнения всего диапазона, в отличие от многократного (медленного) вызова пользовательской функции из каждой ячейки этого диапазона. Чем больше размер массива, тем больше выигрыш в быстродействии функции массива, возвращающей массив по сравнению с вариантом вызова обычной пользовательской функции из каждой ячейки массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2009, 22:49 |
|
||
|
Функция Ексел с результом в нескольких ячейках.
|
|||
|---|---|---|---|
|
#18+
Задача в том, что как входной и так и выходной массивы определяются автоматом по первой ячейке (см Sub в 1-м посту темы). Думаю, что с функцией это действительно невозможно. Решение вижу в Sub с формой ввода имитирующей форму при вводе функции. Т.е. с возможностью выбора необходимых входных и выходных параметров щелчком на ячейке и/или выделением диапазона. Ручной ввод адресов не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 16:13 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36242021&tid=2178972]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
203ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 539ms |

| 0 / 0 |
