|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Сможет кто-нибудь подсказать, как сделать запуск модулей Excel (.bas) через Access. Т.е. формирование отчета в Excel произойдет через интерфейс Access для пользователя (на основании данных Access). Сам модуль работает в Excel нормально. Заранее благодарю! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2004, 15:39 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
у аксесс-апликейшен есть метод run возможно и у эксела есть ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2004, 16:46 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
точно, есть , хоть и скрытый Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2004, 16:53 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Dim f As Excel.Workbook Set f = Excel.Workbooks.Open("d:\tmp\m.xls") Excel.Run "mmm" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2004, 17:08 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Спасибо за помощь! Но возник еще вопрос - после запуска Dim f As Excel.Workbook Set f = Excel.Workbooks.Open("d:\tmp\m.xls") Excel.Run "mmm" пишет, что не найден макрос "mmm". Не подскажете в чем дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2004, 15:32 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
авторСам модуль работает в Excel нормально. уверен что mmm это имя процедуры модулях в эксела? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2004, 15:56 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
RRRulexСпасибо за помощь! Но возник еще вопрос - после запуска Dim f As Excel.Workbook Set f = Excel.Workbooks.Open("d:\tmp\m.xls") Excel.Run "mmm" пишет, что не найден макрос "mmm". Не подскажете в чем дело? Set f = Excel.Workbooks.Open("d:\tmp\m.xls") f.Application.Run "mmm" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2004, 16:00 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Дело в том, что не видит во вновь открытой книге Excel вообще никаких макросов: Dim objExcel As Excel.Application Dim objWorkBook As Excel.Workbook Set objExcel = New Excel.Application objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook objExcel.Visible = True хотя они там до это были эти модули весь отчет и форматируют просто нужно чтобы из Access открывался Подскажите в чем дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2004, 18:01 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
[quot RRRulex]Дело в том, что не видит во вновь открытой книге Excel вообще никаких макросов: [quot] это может означать, что а) макросов там никогда и не было - жили они В ДРУГОЙ книге и на ДРУГОМ компуктере. Просто в момент загрузки именно этой всегда "оказывались под рукой". Например, жили они в personal.xls ... б) они были, но враг их потер. в) они были и есть там же где были. Включена "высокая безопасность", запрещающая исполнение макросов. Выбирай на вкус ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2004, 18:18 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Дело в том, что если открыть любую другую книгу - там есть все макросы ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2004, 18:27 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Из другого топика, закрытого мной: RRRulexДело в том, что не видит во вновь открытой книге Excel вообще никаких макросов: Dim objExcel As Excel.Application Dim objWorkBook As Excel.Workbook Set objExcel = New Excel.Application objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook objExcel.Visible = True Подскажите в чем дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2004, 19:04 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Спасибо Victosha за советы, но тем не менее для запуска книги Excel с формированным отчетом в Access использую следующее решение: Dim objExcel As Excel.Application Dim objWorkBook As Excel.Workbook Set objExcel = New Excel.Application objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook objExcel.Visible = True Книга открывается нормально, отчет формируется, но необходимые макросы для определенного форматирования отчета отсутствуют. Если просто создать новый документ *.xsl, то там все макросы есть - и дело тут не в запрещении макросов, и не в открытости их для всех книг, а в чем то другом - можеть быть данная процедура не открывает полноценную книгу Excel ? Подскажите, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2004, 11:11 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
RRRulexСпасибо Victosha за советы, но тем не менее для запуска книги Excel с формированным отчетом в Access использую следующее решение: Dim objExcel As Excel.Application Dim objWorkBook As Excel.Workbook Set objExcel = New Excel.Application objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook objExcel.Visible = True Книга открывается нормально, отчет формируется, но необходимые макросы для определенного форматирования отчета отсутствуют. Если просто создать новый документ *.xsl, то там все макросы есть - и дело тут не в запрещении макросов, и не в открытости их для всех книг, а в чем то другом - можеть быть данная процедура не открывает полноценную книгу Excel ? Подскажите, пожалуйста! из указанных причин, наиболее вероятна а) если экземпляр Ексель уже открыт, то Set objExcel=CreateObject("Excel.Application") вернет ссылку на существующий в памяти ексель, а Set objExcel=New Excel.Application создаст новый экземпляр. У Вас, судя по всему, макросы хранятся в personal.xls. В точности я не знаю что и как тут произойдет. При открытии второго экземпляра "вручную" просто выводится предупреждение, о том, что Personal.xls занят и может быть открыт только на чтение. в варианте Set objExcel=New Excel.Application возможно, игнорируется открытие уже занятых файлов - не знаю. ЗЫ Вы сказали, что макросы "отсутствуют", но не сказали, где они хранятся... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2004, 11:22 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Я уже задавал этот вопрос, но сейчас натолкнулся на него в форуме и решил уточнить: для авто запуска из Access макроса для .xls использую: Dim objExcel As Excel.Application Set objExcel = CreateObject("Excel.Application") objExcel.Workbooks.Open ("C:\отчет.xls") objExcel.Visible = True objExcel.Run "макрос1" Макрос не выполняется, потому что не находится. Макрос расположен C:\Documents and Settings\логин\Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLS Подскажите, как его все-таки запустить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2004, 18:32 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Если кто заинтересуется, чем эта история закончилась, то сообщаю: Сначала я просто вывожу отчет в Excel без запуска *.bas А затем в созданном документе Excel импортирую (Alt+F11) необходимый *.bas Теперь при следующем запуске отчета из Access програмка находит указанный макрос и запускает его. Следующий отчет формируется на основе установленных свойств предыдущего экземпляра книги Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2005, 12:37 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Очень бы хотелось возобновить тему, столкнулся с похожей проблемой: Имеем некий файл "1.xls " в папке C:\Base\1.xls (куда он периодически попадает) в нем необходимо сделать некоторые изменения с помощью макроса. Так вот, если я открываю excel и запускаю макрос (123 напрмер) и (который у меня храниться в файле personal.xls) то все как бы работает, но при запуске из Access говорит что такой макрос "123" не найден !!! :( Можно еще раз вернуться к этому вопросу и по возможности помочь !? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2007, 13:33 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Добрый день! У меня такая проблема. Не могу открыть книгу Excel вообще. Пишу код на кнопку: Dim objExcel As Excel.Application Dim objWorkBook As Excel.Workbook Set objExcel = New Excel.Application objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook objExcel.Visible = True А он мне отвечает, что objExcel As Excel.Application - User-defined type not defined. Что не так? Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 16:21 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Alexei GennadevichДобрый день! У меня такая проблема. Не могу открыть книгу Excel вообще. Пишу код на кнопку: Dim objExcel As Excel.Application Dim objWorkBook As Excel.Workbook Set objExcel = New Excel.Application objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook objExcel.Visible = True А он мне отвечает, что objExcel As Excel.Application - User-defined type not defined. Что не так? Заранее спасибо! не подключена библиотека Excel тут была такая же проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 16:35 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Alexei GennadevichДобрый день! У меня такая проблема. Не могу открыть книгу Excel вообще. Пишу код на кнопку: Dim objExcel As Excel.Application Dim objWorkBook As Excel.Workbook Set objExcel = New Excel.Application objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook objExcel.Visible = True А он мне отвечает, что objExcel As Excel.Application - User-defined type not defined. Что не так? Заранее спасибо! А что справка не этот счет думает? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 16:37 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
...и вот это - лишнее Alexei Gennadevich objExcel.Workbooks.Open ("C:\Отчет.xls") Set objWorkBook = objExcel.ActiveWorkbook Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2008, 16:40 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Подключил библиотеку Excel и все заработало. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2008, 08:59 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Alexei Gennadevich Подключил библиотеку Excel и все заработало. Спасибо. Граждане-товарищи, всем здравствуйте! А не сможет кто-нибудь помочь разобраться что происходит? Всё по теме "Запустить макрос Excel из Access через VBA". В целом у меня пазлик сложился - в аксе есть процедурка для запуска экселя с параметрами запуска (макрос). библиотека подключена. Сам Эксель запускается и в тестах даже отрабатывает несложный процесс. НО!!! Во-первых вызванный макрос почему-то запускается два раза последовательно друг за другом, во-вторых эксель в конце НЕ ЗАКРЫВАЕТСЯ, хотя ему для этого всё определенно сказано Application.Quit Прикрепил тестовые данные, можно запускать из любого места там всё просто - запускаем Аксесс, там жмем кнопочку, запускается Эксель с метками пошагового выполнения. Да, совсем забыл, макрос запускается из Аксесс с переменной sParam, которая передаётся Экселю, это важно! И сама переменная передается нормально. Вот код для запуска Экселя из Аксесс: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Вот сама процедурка вызывающая этот код для запуска определенной книги с определенным макросом Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Саму процерку проверочную не буду описывать, она абсолютно простая. Но два вопроса не решены( Почему два раза и почему не закрывается. Пробовал в MSO 2003 на Win7x32 и в MSO2010 на Win10x64 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 16:29 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
А оно вообще работает? Код: vbnet 1.
Метки 0 не нашел, ругаться должно бы.. On error(оба) закомментируй и пройди функцию по строкам - может где какая ошибка вылезет а Application.quit у тебя закомментировано раскомментируй или попробуй objExcel.quit ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2021, 07:52 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
kulib, 'If sCommand > "" Then .Run sCommand ' "TestStartOutSide(1001)" - это сперва запустит указанную команду на расчет, ожидая получить в результате имя "макроса" - которое потом запустит на исполнение - поэтому 2 раза в хелпе: If a string is used, the string will be evaluated in the context of the active sheet. Пример: здесь явно указано имя макроса (процедуры), поэтому двойного запуска не будет If sCommand > "" Then .Run "Module1.TestStartOutSide", 1001 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2021, 10:04 |
|
Запуск модулей Excel (.bas) через Access
|
|||
---|---|---|---|
#18+
Serg197311 А оно вообще работает? Код: vbnet 1.
Метки 0 не нашел, ругаться должно бы.. On error(оба) закомментируй и пройди функцию по строкам - может где какая ошибка вылезет а Application.quit у тебя закомментировано раскомментируй или попробуй objExcel.quit ValK412 kulib, 'If sCommand > "" Then .Run sCommand ' "TestStartOutSide(1001)" - это сперва запустит указанную команду на расчет, ожидая получить в результате имя "макроса" - которое потом запустит на исполнение - поэтому 2 раза в хелпе: If a string is used, the string will be evaluated in the context of the active sheet. Пример: здесь явно указано имя макроса (процедуры), поэтому двойного запуска не будет If sCommand > "" Then .Run "Module1.TestStartOutSide", 1001 Только Аксесс теперь при выполнении строки Код: vbnet 1.
запускает Эксель, в самом экселе все процессы отрабатывают корректно, эксель закрывается, но у самого Акса выскакивает Automation Error. Причем дебаг именно на самое строке кода, как будто он ее саму не выполнил! Поможете еще разок недоучке?))) Сам не смогу наверное долго понять т.к. не сам придумал ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2021, 11:08 |
|
|
start [/forum/topic.php?fid=45&msg=32888978&tid=1609532]: |
0ms |
get settings: |
13ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
others: | 244ms |
total: | 529ms |
0 / 0 |