Страницы: 1
RSS
[ Закрыто ] Не запускается макрос Excel 4.0... [ТЕМА ЗАКРЫТА - умышленное нарушение Правил]
 
Я создал форму и пытаюсь из неё кнопкой запустить макрос на языке Excel 4.0 с названием "ВПРеестры", находящийся в той же книге на листе макросов "Программа":  
 
Private Sub CommandButton21_Click()  
Application.Run ("ВПРеестры")  
End Sub  
 
Не работает! Точнее, иногда почему-то срабатывает...На одном компьютере срабатывает, на другом -нет (на обеих -Office2003)... В чем может быть дело? Варианты  
Application.Run "ВПРеестры"  
Аpplicanion.Run ("'[MYPROGA.XLS]Программа'!ВПРеестры") и
Application.ExecuteExcel4Macro "RUN(""ВПРеестры"")" - тоже не работают...
 
Макросы на языке Excel 4.0 устарели ещё в прошлом веке.  
(если вы говорите про специальный лист макросов)  
Несколько лет пишу макросы для Excel - но ни разу не встречал таких динозавров...  
 
Нашел в инете:  
"С конца 90х годов Microsoft настоятельно рекомендует переписать XLM-макросы в Excel-приложениях на программы VBA"  
 
Покажите файл с этим чудо-макросом - подскажем, как его запускать.
 
Не могли бы вы раскрыть понятие "Не работает"? По какому конкретно признаку вы узнаете, что "не работает"? Неплохо бы и конкретные макроформулы привести, если не файл с примером.  
 
Если "ВПРеестры" - это имя именованного диапазона на макро-листе в котором находится макрос, то должно работать так:  
 
Application.ExecuteExcel4Macro "RUN(""ВПРеестры"")"  
если из другой книги, то так  
Application.ExecuteExcel4Macro "RUN(""'[MYPROGA.XLS]Программа'!ВПРеестры"")"
 
и так  
Application.Run "ВПРеестры"  
если из другой книги, то так  
Application.Run "'[MYPROGA.XLS]Программа'!ВПРеестры"
 
Скорее всего проблема в отображении кириллицы в редакторе VBA (т.е. в кодировке установленной в настройках Windows для не юкодовых шрифтов) на одной из машин.
KL
 
{quote}{login=EducatedFool}{date=07.02.2012 08:26}{thema=}{post}Несколько лет пишу макросы для Excel - но ни разу не встречал таких динозавров....{/post}  
{/quote}  
 
Я, наверное, и есть такой динозавр... Представьте себе - моя программа мониторинга экспортно-импортных операций писалась на макросах 4,0 еще в 1997 году! В лучшие времена она работала в 12 главных банках Украины (сейчас осталась в пяти - и они категорически не хотят от неё отказываться!). Длина кода >11 000 строк и работает чудесно во всех версиях MS Office! Как возможно ее переписать?! (и кто за это заплатит :) ?)  
Поэтому я хочу лишь ее слегка модернизировать с помощью VBA. Мучаюсь ужасно... Для начала вот сделал новые панели с кнопками 32х32...(см мое след. собщение). Но вот беда как-то всё неустойчиво и непонятно для меня работает...
 
Большое спасибо за подсказки!  
Я выяснил. что работает только вариант:    
Application.ExecuteExcel4Macro "RUN(""ГТД"")", но только почему-то тогда, когда  
активизирован лист с программой на макросах 4,0. Поэтому в обработке клика пришлось его активизировать, а потом прятать снова.  
 
Программа очень большая, поэтому я её обрезал для примера работы кнопок...Тут-то всё и началось!  
Программа должна работать так: при автооткрывании файла PRG_1002 скрываются стандарные панели инструментов и заменяются UserForm'ами (которые должны постоянно висеть, вне зависимости от того, какой файл открывается), затем открывается EXPORT.XLS.    
 
В примере должны работать (выводить сообщения) три кнопки: 3 и 4 на левой панели и 5-я справа на верхней. Из них почему-то работает только одна! Также перестала работать функция VBA Workbook_Open()... М.б. они где-то не там расположены?  
 
Не могли бы вы посмотреть правильность размещения частей кода в VBA? (прилагаются 2 файла, которые д.б.размещены в одной папке). Заранее благодарен!  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
2-й файл (который должен открываться программой)
 
{quote}{login=andre532}{date=09.02.2012 02:25}{thema=Re: Re: }{post}2-й файл (который должен открываться программой){/post}{/quote}  
 
Пардон, посылаю повторно
 
{quote}{login=}{date=09.02.2012 02:31}{thema=Re: Re: Re: }{post}{quote}{login=andre532}{date=09.02.2012 02:25}{thema=Re: Re: }{post}2-й файл (который должен открываться программой){/post}{/quote}  
 
Пардон, посылаю повторно{/post}{/quote}  
С файлом явно какая-то путанница - не вижу кода ни VBA ни XLM :)
KL
 
{quote}{login=andre532}{date=09.02.2012 02:22}{thema=Re: }{post}1) ...Я выяснил. что работает только вариант:    
Application.ExecuteExcel4Macro "RUN(""ГТД"")", но только почему-то тогда, когда  
активизирован лист с программой на макросах 4,0. Поэтому в обработке клика пришлось его активизировать, а потом прятать снова...  
 
2) ...Не могли бы вы посмотреть правильность размещения частей кода в VBA? (прилагаются 2 файла, которые д.б.размещены в одной папке)...{/post}{/quote}  
 
1) Если нужно обращаться к неактивному листу, то нужно квалифицировать ссылку полностью: Application.ExecuteExcel4Macro "RUN(""'[MYPROGA.XLS]Программа'!ВПРеестры"")"
 
2) Мог бы, но файла с кодом пока нет (первый был удален из-за размера)
KL
 
Уменьшил размер программного файла PRG_1003.xls до 115к (удалил почти все кнопки)  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Еще Уменьшил размер программного файла PRG_1002.xls (архивировал -там все кнопки остаются на месте)
Страницы: 1
Читают тему
Наверх
Loading...