powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пытаюсь создать функцию в Экселе
33 сообщений из 33, показаны все 2 страниц
Пытаюсь создать функцию в Экселе
    #34235792
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказалось, что я ламер в Экселе... Что я делаю не так? Весь вопрос на картинке. Всем заранее спасибо и с Новым годом.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235813
возможно...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
функцию надоть засунуть в стандартный модуль
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235817
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч

Ваша функция “живет” в модуле класса ThisWorkbook. Попробуйте поместить ее в обычный модуль и все заработает.

...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235825
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, сделал это - и ошибка исчезла. Не спрашиваю, почему нельзя пользоваться стандартным модулем. Видимо, так захотел Билл Гейтс...

Но появилась новая ошибка. Я добавил к функции два параметра строкового типа и при вызове передал значения двух ячеек. Вернулась та же ошибка: #NAME?
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235846
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вы код опубликуйте, а то не очень понятно
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235864
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ добавил к функции два параметра строкового типа
Дело наверное в этом. Правильнее все же аргументы функции делать типа Range или типа Variant (по умолчанию аргументы имеют тип Variant, так что его можно явно не указывать)
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235868
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lena_####А Вы код опубликуйте, а то не очень понятно
Похоже, что там просто что-то заело. То работает, то не работает, когда я меняю имя функции или параметра, а потом меняю обратно, или когда я переношу вызов функции на другой лист. Никакой видимой закономерности не вижу. Думаю, что надо будет либо еще поколдовать, либо перезапустить компьютер.

Спасибо большое!
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235875
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lena_#### авторЯ добавил к функции два параметра строкового типа
Дело наверное в этом. Правильнее все же аргументы функции делать типа Range или типа Variant (по умолчанию аргументы имеют тип Variant, так что его можно явно не указывать)
Variant пробовал, это ничего не меняло. Помогло то, что я переименовал функцию и параметры, а потом переименовал их обратно.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235884
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно все это. В этом есть какая-то кривизна.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34235914
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lena_####Странно все это. В этом есть какая-то кривизна.
Именно. Ну, будем считать, что сегодня просто неправильный день для занятий Экселем.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236006
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычДа, сделал это - и ошибка исчезла. Не спрашиваю, почему нельзя пользоваться стандартным модулем. Видимо, так захотел Билл Гейтс...Ну и зря не спрашиваешь. А еслиб спросил, мы бы ответили. И Билл Гейтс тут совсем ни при чем, такого поведения требует логика объектной архитектуры.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236026
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Владимир СанычДа, сделал это - и ошибка исчезла. Не спрашиваю, почему нельзя пользоваться стандартным модулем. Видимо, так захотел Билл Гейтс...Ну и зря не спрашиваешь. А еслиб спросил, мы бы ответили. И Билл Гейтс тут совсем ни при чем, такого поведения требует логика объектной архитектуры.
Прошу прощения, но я знаю Аксесс. И в Аксессе почему-то можно описать функцию в модуле формы, а потом из той же формы к ней обратиться (подразумевая Me.мояфункция). Почему в Аксессе можно, а в Экселе нельзя? Билл Гейтс у них один и тот же. А логика объектной архитектуры разная?
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236055
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч White Owl Владимир СанычДа, сделал это - и ошибка исчезла. Не спрашиваю, почему нельзя пользоваться стандартным модулем. Видимо, так захотел Билл Гейтс...Ну и зря не спрашиваешь. А еслиб спросил, мы бы ответили. И Билл Гейтс тут совсем ни при чем, такого поведения требует логика объектной архитектуры.
Прошу прощения, но я знаю Аксесс. И в Аксессе почему-то можно описать функцию в модуле формы, а потом из той же формы к ней обратиться (подразумевая Me.мояфункция). Почему в Аксессе можно, а в Экселе нельзя? Билл Гейтс у них один и тот же. А логика объектной архитектуры разная?Нет, не разная, та же самая. В Экселе, описав функцию в модуле книги или в модуле листа, ты можешь к ним обращаться из того-же самого модуля книги или листа через Me.myfunction() или опуская Me просто myfunction(). Все точно так же как и в Акцессе.
Формулы листа выполняются в безымянном (с точки зрения VBA) объекте - интрепретаторе формул листа. Это совершенно отдельный объект. У него своя собственная универсальная область видимости имен, охватывающая как текущую книгу, так и все остальные загруженые в данный момент книги плюс возможность вызывать функции из незагруженых книг.
Поиск пользовательских функций используемых на листе выполняется по правилам описаным в методах Application.Run() и Application.Evaluate().
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236072
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlВ Экселе, описав функцию в модуле книги или в модуле листа, ты можешь к ним обращаться из того-же самого модуля книги или листа через Me.myfunction() или опуская Me просто myfunction(). Все точно так же как и в Акцессе.
Почему тогда моя функция заработала только после того, как я перенес ее в обычный модуль?
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236163
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч White OwlВ Экселе, описав функцию в модуле книги или в модуле листа, ты можешь к ним обращаться из того-же самого модуля книги или листа через Me.myfunction() или опуская Me просто myfunction(). Все точно так же как и в Акцессе.
Почему тогда моя функция заработала только после того, как я перенес ее в обычный модуль?Потому что ты обращался к этой функции из ячейки листа. Ячейка листа не является потомком VBProject.
Вот если ты описываешь событие книги Workbook_Open, то ты кладешь код этого события в CodeModule под именем ThisWorkbook. Или если говорить про полный путь, то Application.VBProjects("Имя твоей книги.xls").VBComponents("ThisWorkbook").CodeModule. Любая пользовательская функция описаная внутри этого CodeModule будет доступна из события Workbook_Open.
Пользовательские функции вызываемые из ячеек на листе ищутся в CodeModule'ях лежащих внутри VBComponents c типом vbext_ct_StdModule. А у Application.VBProjects("Имя твоей книги.xls").VBComponents("ThisWorkbook").Type = vbext_ct_Document.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236324
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Владимир СанычПочему тогда моя функция заработала только после того, как я перенес ее в обычный модуль?Потому что ты обращался к этой функции из ячейки листа. Ячейка листа не является потомком VBProject.
Понимаю. У Экселя такая логика. В Аксессе это не так, там можно обращаться к функции не только из модуля формы, но и из самой формы, т.е. из ее свойств, а также из свойств других объектов, расположенных на форме.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236377
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч White Owl Владимир СанычПочему тогда моя функция заработала только после того, как я перенес ее в обычный модуль?Потому что ты обращался к этой функции из ячейки листа. Ячейка листа не является потомком VBProject.
Понимаю. У Экселя такая логика. В Аксессе это не так, там можно обращаться к функции не только из модуля формы, но и из самой формы, т.е. из ее свойств, а также из свойств других объектов, расположенных на форме.А ты приглядись повнимательнее. Все свойства формы и свойства объектов лежащих на форме описываются внутри того-же самого модуля. Что в Акцессе, что в Экселе. Абсолютно одинаково. Если ты положишь на экселевский лист объект - чекбокс там или картинку или еще чего-нибудь, то все свойства этого объекта будут иметь полный доступ к функциям описаным в модуле листа. Точно так же как в Акцессе.
Но вот в Акцессе, ты не можешь использовать функции формы, внутри таблицы которая показывается на этой форме, верно? А чтобы использовать собственные функции внутри таблицы, эти функции надо описать отдельно от формы. Так же и в Экселе, проведи параллель между таблицей на листе Экселя и таблицей Акцесса.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34236507
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlТак же и в Экселе, проведи параллель между таблицей на листе Экселя и таблицей Акцесса.
Эээ... Ну, параллель, конечно, так провести можно. Да и нет выхода - оно действительно так работает. Только вот параллель получается какая-то непараллельная. Потому что в Аксессе таблица - это все-таки самостоятельный объект, отдельный от формы, который привязывается к форме только волею программиста. А в Экселе книга и лист выглядят как аналог формы, ибо именно при них имеются модули.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237212
lukapacioli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос к Белой Сибирской Сове - надеюсь она сможет помочь-
помогите понять, почему виснет в момент выхода функция Excel??? - Запрос от 02\01\07 есть на форуме

Из модуля формы Access:
- открывается Excel (заранее подготовленная книга с подключенным к книге SOLVER – «поиск решения»);
- вызывается заранее подготовленная подпрограмма Excel

appExcel.ExecuteExcel4Macro ("goldnew2.xls!Optima()")

В результате, расчет проходит нормально, но, в самом конце, выходя на END SUB – подпрограмма EXCEL виснет – появляется приведенное ниже сообщение. Какую еще функцию ищет Excel???
Если нажать кнопку ОК – все нормально завершается – управление возвращается в нужное место модуля ACCESS, из которого вызывался EXCEL.
Подлость в том, что при автономном расчете в EXCEL (без вызова из ACCESS) все проходит абсолютно нормально. Вызов из ACCESS, подпрограммы EXCEL (без SOLVER)- отработка и возврат - тоже без проблем. ЭТО НЮАНС SOLVER, но как его проойти??
В доступной мне литературе никаких намеков на этот случай нет.
Помогите понять - в чем дело?

(полная версия с вопросом о функции ВОЗВРАТ() или СТОП() приведена в прикрепленном файле - отпаравляюсь из комп клуба - здесь нет Word! - чтут авторские права!).
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237252
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычТолько вот параллель получается какая-то непараллельная.Ну это естественно, если б оно было совсем параллельной, то Эксель с Акцессом были бы два одинаковых продукта :)

Владимир СанычА в Экселе книга и лист выглядят как аналог формы, ибо именно при них имеются модули.ээээ..... нет. В Экселе есть свои собственные формы, которые и выглядят как формы и называются формами и собственные кодовые модули имеют. Но действительно, лист может изображать из себя форму.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237257
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lukapacioliВопрос к Белой Сибирской Сове - надеюсь она сможет помочь-
....
– появляется приведенное ниже сообщение. Какую еще функцию ищет Excel???
....
(полная версия с вопросом о функции ВОЗВРАТ() или СТОП() приведена в прикрепленном файле - отпаравляюсь из комп клуба - здесь нет Word! - чтут авторские права!).
Нет, она не сможет помочь, ей нужно видеть сообщение об ошибке.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237277
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНу это естественно, если б оно было совсем параллельной, то Эксель с Акцессом были бы два одинаковых продукта :)
Собственно, я примерно такую формулировку и ждал, чтобы нам на ней примириться.

White Owl Владимир СанычА в Экселе книга и лист выглядят как аналог формы, ибо именно при них имеются модули.ээээ..... нет.
Ну тогда пусть книга и лист будут аналогом аксессовского отчета. Это всё очень похожие объекты - формы и отчеты в Аксессе, книги, листы и формы в Экселе. Их объединяет то, что при них всех есть модули (в отличие от, например, таблиц Аксесса). И эта похожесть вводит в заблуждение.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237290
lukapacioli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Белой Сибирской Сове - Спасибо за внимание -
прикрепляю полный вопрос - см. файл с ругательствами -
"На листе макросов не найдена функция ВОЗАРАТ() или СТОП ()"
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237458
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычИ эта похожесть вводит в заблуждение. Но как только перестаешь заблуждаться, сразу чувствуешь стройность всей системы :)
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237460
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: lukapacioli, в следующий раз задавайте вопрос в той теме, которая этому вопросу посвящена.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237464
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lukapacioliБелой Сибирской Сове - Спасибо за внимание -
прикрепляю полный вопрос - см. файл с ругательствами -
"На листе макросов не найдена функция ВОЗАРАТ() или СТОП ()"1) Прикреплять надо не вордовские документы, а bmp. Тогда никому не прийдется ничего скачивать, а сразу будет видна картинка с ошибкой.
2) Не надо использовать лист макросов четвертого Экселя. Надо написать макрос на VBA (тем более что ты его уже знаешь) и запускать appExcel.Run("goldnew2.xls!Module1.Optima") если Optima это имя макроса лежащего в модуле с именем Module1.
3) Если так сильно хочется возится с устаревшими технологиями, то.... Ну поставь в конце макроса команду СТОП. Тебе же по русски даже пишут: "Не найдена функция ВОЗВРАТ() или СТОП()" Макрос на Excel4 листе должен явно кончаться вызовом СТОП(). Читай учебник, читай сообщение об ошибке.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34237508
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Владимир СанычИ эта похожесть вводит в заблуждение. Но как только перестаешь заблуждаться, сразу чувствуешь стройность всей системы :)
Нифига. Сплошной разброд и шатания.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34253712
lukapacioli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо сибирской сове.
Несколько резанул глаз назидательный тон:
- Excel - не моя среда. Когда я столкнулся с проблемой интеграции Акса и Экса (Нужен был именно Солвер) - обратился к базарной документации - не помогло - скороговорка.
Обращение к пользователям этого сайта - прислали тексты Солвера - там обращение идет именно через эту макрокоманду. Кстати и на сайте техподдержки MS приведена именно она.
Общаться пришлось в праздники ( был в командировке в медвежьем углу Украины - из клуба где не было Worda ///)
Но, это все эмоции - еще раз СПАСИБО.
Кстати буду признателен за умную книжку по программированию на EXCEl (может быть пригодится) - заранее спасибо
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34254729
Michael5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lukapacioli Кстати буду признателен за умную книжку по программированию на EXCEl (может быть пригодится) - заранее спасибо

У меня есть А.Гарнаев, Самоучитель VBA, 2-е издание, БХВ-Петербург, 2004.
Освещаются вопросы по программированию в приложениях Office.
Как справочник по ответам на элементарные вопросы,возникающие у новичков (меня, например) - отличный вариант.
Советую.
Правда, как понимаете, это в бумажном виде.
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #34257982
lukapacioli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, воспользуюсь Вашим советом
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Пытаюсь создать функцию в Экселе
    #36630332
горе
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно создать в МВБ функцию для решения системі...
вроде написала все правильно а відает ошибку ИМЯ.
что делать
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #36630333
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
горенужно создать в МВБ функцию для решения системі...
вроде написала все правильно а відает ошибку ИМЯ.
что делать
Показать
...
Рейтинг: 0 / 0
Пытаюсь создать функцию в Экселе
    #36631562
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Function NDS (x, y) ' а - значение функции, x- 1-e значение , y-2-е значение
If y="без НДС" then
NDS=0
Elseif y="НДС" then
NDS=x*0.2
Elseif y="НДС в том числе " then
NDS=x*0.1667
End if
End Function
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пытаюсь создать функцию в Экселе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]