0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 23
|
|||||||||||
1 | |||||||||||
Не могу вызвать пользовательскую функцию в ячейке на листе - VBA25.01.2018, 17:00. Показов 5131. Ответов 11
Метки нет (Все метки)
Чего-то день сегодня не задался
Я написал свою функцию:
В результате, эксель выдает ошибку. В ячейке отображается: " #ЗНАЧ!" Я пытаюсь понять, почему так происходит. Пишу процедуру, которая вызывает эту функцию и записываю получившееся значение в ячейку:
В чем может быть причина?
0
|
25.01.2018, 17:00 | |
Ответы с готовыми решениями:
11
Не могу вызвать пользовательскую функцию в ячейке на листе Не могу вызвать пользовательскую функцию Вызвать пользовательскую функцию в меню не получается вызвать пользовательскую функцию |
3897 / 2302 / 776
Регистрация: 02.11.2012
Сообщений: 6,119
|
|
25.01.2018, 17:10 | 2 |
пошагово прогоните саму ф-цию.
0
|
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 23
|
|
25.01.2018, 17:12 [ТС] | 3 |
0
|
3897 / 2302 / 776
Регистрация: 02.11.2012
Сообщений: 6,119
|
|
25.01.2018, 17:23 | 4 |
в vba в коде функции на поле слева кликните ЛКМ, должна появится красная точка (это точка останова)
на листе становитесь в формулу и жмете ввод.
1
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
25.01.2018, 17:27 | 5 |
Судя по другой теме - код не в стандартном модуле.
1
|
3897 / 2302 / 776
Регистрация: 02.11.2012
Сообщений: 6,119
|
|
25.01.2018, 17:29 | 6 |
функция отработает до точки останова и дальше можно идти стандартно F8.
Добавлено через 1 минуту Hugo121, в той теме писали про станд. модуль. Вот и подумал раз в той теме вопрос закрыт то ТС перенс код в модуль. Файла нет, негде проверить.
1
|
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 23
|
|
25.01.2018, 17:35 [ТС] | 7 |
Я перенес код в стандартный модуль.
При нажатии F8 в каком-то бы ни было месте в функции, пошаговый режим не запускается, именно поэтому я вызываю её для пошаговой проверки через процедуру. Файл я могу выслать, если Вам будет не лень в нем копаться
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
||||||
25.01.2018, 17:43 | 8 | |||||
Ставите в коде функции точку останова, ну или просто пишите где-то в начале строку
1
|
3897 / 2302 / 776
Регистрация: 02.11.2012
Сообщений: 6,119
|
|
25.01.2018, 17:45 | 9 |
Сообщение было отмечено spr85 как решение
Решение
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
25.01.2018, 17:55 | 10 |
; - это правильный разделитель аргументов?
Добавлено через 46 секунд Ну и вижу что пошаговый нормально отрабатывает
0
|
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 23
|
|
25.01.2018, 18:04 [ТС] | 11 |
Сработало!
Действительно, в коде была одна строчка, которая записывала промежуточное значение в ячейку на другом листе и почему-то код просто на ней прерывался! Я её закомментил и все начало работать! Спасибо огромное, Vlad999 и Hugo121!
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
25.01.2018, 18:13 | 12 |
UDF с листа ничего не могут писать в другие ячейки листов!
Ну есть одно кривое исключение... но оно подверждает правило
0
|
25.01.2018, 18:13 | |
25.01.2018, 18:13 | |
Помогаю со студенческими работами здесь
12
Создать пользовательскую функцию MS Excel и воспользоваться ей в формулах, размещаемых на рабочем листе Создать пользовательскую функцию в vba В VBA создать пользовательскую функцию Данные должны отображаться на другом листе в одной ячейке (без использования VBA) С помощью математических функций VBA составить пользовательскую функцию для вычисления выражения 1. Создать пользовательскую функцию. Используйте операторы if и Case. 2. Создать Пользовательскую Форму, использующую функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |