|
|
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
Доброго здоровья и настроения. Excel 2003 (11.6355.6360) SP1 На единственном листе книги: ABCD1=22=23=mega_fail2_(ЯЧЕЙКА("содержимое";A1);ЯЧЕЙКА("содержимое";B1);D1) Функция определена в стандартном модуле Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Больше никаких данных, формул, кода в книге нету. Автопересчет отключен. При попытке пересчитать лист получаю сообщение Код: plaintext 1. 2. 3. Запускаю в окне отладки Код: plaintext 1. Подскажите, кто сколько может, на какие это грабли я наступил. --------------------------------- Зри в корень! (с) Козьма Прутков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2011, 23:56 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
Прошу прошения, соврал: Запускаю в окне отладки Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 00:03 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
Stupid_BOT, функция вовращает значение туда, откуда вызывается. А в D1 у Вас нет никакой функции. Ошибку вызывает строка: mf.Value = x1 + x2, поскольку тут налицо попытка менять ячейку, к которой функция не принадлежит. Так же и с функциями листа. Попробуйте написать формулу в А1, к-рая меняла бы значение в пустой ячейке В1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 00:30 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
Можно так пользоваться(или так же формулами на листе): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 00:39 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
kuklpStupid_BOT, функция вовращает значение туда, откуда вызывается. А в D1 у Вас нет никакой функции. Ошибку вызывает строка: mf.Value = x1 + x2, поскольку тут налицо попытка менять ячейку, к которой функция не принадлежит . Так же и с функциями листа. Попробуйте написать формулу в А1, к-рая меняла бы значение в пустой ячейке В1. Что вызывает ошибку мне понятно. Для понимания свой обработчик и вставил. Без него Excel при пересчете рисовал сокраментальное #ЗНАЧ! в [C1]. Непонятно почему такое существенное различие при вызовах "из листа" и "из окна отладки". Ну да Гейтс с ним. Поскольку на данный момент интерес чисто академический. kuklpМожно так пользоваться(или так же формулами на листе): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. Разумеется, можно поизвращаться, - добавить функции параметров. Но как-то это не по фен-шую. Имхо, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 03:17 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
[quot Stupid_BOT]kuklpStupid_BOT, Разница существенная. Разумеется, можно поизвращаться, - добавить функции параметров. Не надо, это я прозевал(спать хотел). Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 09:07 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
ИМХО, если функция в модуле, то неплохо бы было сделать её Public... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 11:10 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
Если использовать в коде (а не на листе), то вполне себе работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 13:29 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
AndreTMИМХО, если функция в модуле, то неплохо бы было сделать её Public...Она и так Public ( If not explicitly specified using Public, Private, or Friend, Function procedures are public by default. ) 2 All: спасибо за советы. Получается, что при вызове функции "из листа" невозможно изменить значение ячейки, переданной этой функции аргументом. Жаль, у меня ещё столько идей было (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2011, 09:05 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
Stupid_BOT, дык, я это еще в первом ответе написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2011, 10:45 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
kuklpStupid_BOT, дык, я это еще в первом ответе написал.Дык, неправда Ваша. В тама Вы только факт констатировали, а не привели аргументированных тынцев на документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2011, 10:50 |
|
||
|
Excel присвоение значения ячейке в пользовательской функции
|
|||
|---|---|---|---|
|
#18+
kuklpStupid_BOT, функция вовращает значение туда, откуда вызывается. А в D1 у Вас нет никакой функции. Это что? Я это знаю и пишу об этом. А искать для Вас документацию... Я не библиотекарь, не архивариус:-) Тут уж Вы сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2011, 11:19 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=118&tid=2176397]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 319ms |

| 0 / 0 |
