|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.02.2010, 23:35 | #1 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Странность с пользовательской функцией
Привет всем.
Я сделал пользовательскую функцию, которая может принимать много аргументов через точку с запятой. По сути, она является просто оберткой для этих аргументов, так как ее смысл состоит в автоматическом помещении формулы в примечание после ввода формулы + это дает возможность автозаполнения. Сама она должна возвращать пустое значение: Код:
Например, в ячейке формуле было присвоено через Range("..").Formula ="="+A(0;5*C3; C2>=0), но при этом там появился 0, а не "". Причем эта ошибка возникает не всегда. В чем может быть дело? Как заставить функцию всегда выдавать "", что бы там ни стояло внутри? Может, это из-за каких-то ошибок, и надо просто отключить реагирование на ошибки? Последний раз редактировалось motorway; 23.02.2010 в 23:38. |
23.02.2010, 23:44 | #2 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
я даже пытаться не буду понять что это за телодвижения и для чего они нужны.
попробуйте определить функцию как String |
23.02.2010, 23:46 | #3 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Собственно, никто не заставляет понимать, если не хотите
Не работает вариант такой В общем, не важно, зачем нужна функция, главное, она есть с таким кодом... Предположим, что это из-за циклических ссылок. Как тогда отключить реагирование на них, чтобы возвращало "" в любом случае? Последний раз редактировалось motorway; 23.02.2010 в 23:49. |
23.02.2010, 23:51 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Public Function A(ParamArray Formulas() As Variant) As String
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
23.02.2010, 23:56 | #5 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Не работает, увы
|
24.02.2010, 00:06 | #6 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Все варианты работают
Анализ,обработка данных Недорого
|
24.02.2010, 00:08 | #7 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Ну само по себе у меня тоже работало, но вот иногда в ячейках появляется 0, когда присваиваешь формуле в ячейке эту формулу с параметрами
Как все-таки присваивать "", если в аргументах стоит сама ячейка? Нужно как-то блокировать этот 0 Последний раз редактировалось motorway; 24.02.2010 в 00:11. |
24.02.2010, 00:15 | #8 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
У меня иногда бывало.
что при каких то ошибках,функция отказывалась считать,но сообщения не выкидывала Возможно и ноль появляется. Код:
Анализ,обработка данных Недорого
|
24.02.2010, 00:21 | #9 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Попробовал и такой вариант, не помогает
Да, похоже, это наверняка из-за циклич. ссылок. Теперь надо избавиться от этого нуля Последний раз редактировалось motorway; 24.02.2010 в 00:26. |
24.02.2010, 00:59 | #10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
замените
Range("..").Formula ="=" + A(0;5*C3; C2>=0) на Range("..").Formula ="=" & A(0;5*C3; C2>=0) Наверняка подобное встречается и в других местах кода, и в формулах на листе. И на будущее - используйте для конкатенации строк исключительно амперсанд, а знак "плюс" - только при сложении чисел. Тогда подобных ошибок удастся избежать. Ну и, конечно, как все уже высказались, определите функцию как string
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 24.02.2010 в 01:03. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странность в условии | k1r1ch | Общие вопросы Delphi | 18 | 03.11.2009 12:43 |
Странность POST-запроса | Voody | Работа с сетью в Delphi | 4 | 21.07.2009 20:39 |
Написание пользовательской функции. | GoreProgrammist | Microsoft Office Excel | 9 | 15.07.2009 15:28 |
String - странность или кривые руки | elsin | Общие вопросы Delphi | 12 | 29.01.2009 02:17 |
Получение пользовательской функцией данных с закрытой книги | KozakMamaj | Microsoft Office Excel | 18 | 22.10.2008 06:55 |