+ Ответить в теме
Страница 1 из 2
1 2 ПоследняяПоследняя
Показано с 1 по 10 из 13.

Тема: проблема с открытием файла в before_save при обращении из userform

  1. #1
    coder district is on a distinguished road
    Регистрация
    14.11.2007
    Адрес
    Москва
    Сообщений
    46

    проблема с открытием файла в before_save при обращении из userform

    Уважаемые! Буду признателен за помощь. Речь об excel.

    UserForm1 содержит код
    Unload me
    thisworkbook.save

    В процедуре before_save прописан код открытия некоего файла

    Проблема: файл этот не открывается. Причем никаких сообщений при его открытии системой не выдается - просто проскальзывает дальше. Без формы все нормально и он открывается без проблем. Не могу никак выяснить в чем загвоздка.

  2. #2
    system architect Teslenko_EA will become famous soon enough
    Регистрация
    04.02.2007
    Адрес
    Сургут
    Сообщений
    518

    Re: проблема с открытием файла в before_save при обращении из userform

    Здравствуйте district.
    обычно люди перед выходом из дома закрывают воду, выключают свет,.. выполняют доступные действия.
    Unload me - по аналогии это "выход из дома", и выйдя на улицу Вы хотите выключить свет.
    Евгений.

  3. #3
    coder district is on a distinguished road
    Регистрация
    14.11.2007
    Адрес
    Москва
    Сообщений
    46

    Re: проблема с открытием файла в before_save при обращении из userform

    Здравствуйте Евгений.

    Спасибо за ответ, но пока проблему не решил. Поставил unload me в конец кода - разницы нет: файл не хочет открываться и при попытке открытия ни на что не жалуется. Собственно реальная задача чуть сложнее выглядит:

    UserForm2 содержит код:
    userform2.hide
    userform3.show
    unload me

    userform3 содержит код:
    userform3.hide
    thisworkbook.save
    unload me

    Процедура beforesave содержит ссылку на внутреннюю (в этом же файле) процедуру:
    procedure_a

    Procedure_a содержит код:
    With Workbooks.Open(Filename:=XXX, UpdateLinks:=0, ReadOnly:=True)
    End With

    Здесь-то у меня засада и возникает: код открывающий файл при любых других обстоятельствах почему-то в заданных сбоит: файл не открывается и при этом никаких предупреждений не выдается (проверил отсутствие всевозможных on error resume next). Такое ощущение, что он открывается где-то в параллельной вселенной. Есть еще какие подозрения почему так?

  4. #4
    developer EducatedFool is on a distinguished road Аватар для EducatedFool
    Регистрация
    06.04.2008
    Адрес
    Россия, Урал
    Сообщений
    193

    Re: проблема с открытием файла в before_save при обращении из userform

    А попробуйте запускать форму в немодальном режиме
    (типа Userform1.Show 0)
    Вдруг поможет...
    Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

    Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216

  5. #5
    coder district is on a distinguished road
    Регистрация
    14.11.2007
    Адрес
    Москва
    Сообщений
    46

    Re: проблема с открытием файла в before_save при обращении из userform

    Сделал немодальный режим для обоих userform. К сожалению вновь мимо - файл не открывается и все тут.

  6. #6
    programmer nilem is on a distinguished road
    Регистрация
    14.11.2008
    Адрес
    Уфа
    Сообщений
    64

    Re: проблема с открытием файла в before_save при обращении из userform

    А если напрямую вызывать процедуру:
    userform3 содержит код:
    userform3.hide
    thisworkbook.save
    Call Module1.Procedure_a
    unload me

  7. #7
    coder district is on a distinguished road
    Регистрация
    14.11.2007
    Адрес
    Москва
    Сообщений
    46

    Re: проблема с открытием файла в before_save при обращении из userform

    Спасибо, Nilem. Уточню: вы хотели сказать что в beforesave (которая и содержит procedure_a, которая в свою очередь содержит код открытия файла) procedure_a нужно вызывать кодом "Call Module1.Procedure_a" ? И сразу второй вопрос ибо с командой call не знаком - как-то обходился до сих пор: правильный код будет "Call Module(здесь номер модуля содержащего procedure_a).Procedure_a"?

  8. #8
    programmer nilem is on a distinguished road
    Регистрация
    14.11.2008
    Адрес
    Уфа
    Сообщений
    64

    Re: проблема с открытием файла в before_save при обращении из userform

    Да, Call - ключевое слово, которое передает управление вызываемой процедуре. И, да, Module1 (2,3,...) - это имя модуля, в котором находится вызываемая процедура. Слово Call можно опустить, просто Module1.Procedure_a - тоже сработает. После работы вызываемой процедуры, управление передается оператору, следующему за строкой Call Module1.Procedure_a
    Только поместить это надо в проц-ру закрытия userform3, я так думаю.
    Если не поможет - выкладывайте файл, возможно дело не в порядке следования процедур.

  9. #9
    coder district is on a distinguished road
    Регистрация
    14.11.2007
    Адрес
    Москва
    Сообщений
    46

    Re: проблема с открытием файла в before_save при обращении из userform

    Nilem, поясните еще одну деталь. "Procedure_a" я вызывал следующим кодом: "application.run "procedure_a". Ибо вызываемая процедура у меня относится к скрытым в списке макросов (Private Sub procedure_a ()). Видимо по этой причине использование call не проходит: "Method or data member not found". Если так, то как в таком случае правильно использовать call?

  10. #10
    programmer nilem is on a distinguished road
    Регистрация
    14.11.2008
    Адрес
    Уфа
    Сообщений
    64

    Re: проблема с открытием файла в before_save при обращении из userform

    Ну да, если процедура со статусом Private (область видимости - модуль, в котором она находится), то используем метод Run, типа
    Run "procedure_a"
    Но лучше уберите Private (т.е. сделайте процедуру Public - доступной для всех модулей) и тогда можно так
    Call Module1.procedure_a
    Если процедура с названием procedure_a только одна во всем проекте, Module1 можно не указывать.

+ Ответить в теме

Похожие темы

  1. Ошибка при выполнении при обращении к файлу
    By GrindeX in forum задачи на Паскале и Delphi
    Replies: 4
    Последнее сообщение: 03.05.2009, 23:07
  2. Replies: 0
    Последнее сообщение: 30.08.2008, 03:49
  3. проблемы с открытием файлов
    By skichkola in forum Вопрошайка
    Replies: 5
    Последнее сообщение: 21.03.2008, 13:00
  4. Replies: 1
    Последнее сообщение: 25.11.2005, 16:51
  5. проблема с открытием базы access
    By a in forum MS Office и VB(A).
    Replies: 1
    Последнее сообщение: 20.07.2004, 03:19

Ваши права в разделе

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения