powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пытаюсь создать функцию в Экселе
25 сообщений из 33, страница 1 из 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
25 сообщений из 33, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Пытаюсь создать функцию в Экселе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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