powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel - инициализация переменной в другом файле
12 сообщений из 12, страница 1 из 1
Excel - инициализация переменной в другом файле
    #38167999
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Реально ли осуществить такую инициализацию?
Если реально то как?

Дано:
2 Excel файла с макросами и довольно сложной логикой, описанной в модулях.

Файл1 открывает Файл2 и делает на его листах изменения и сохраняет Файл2 под другим именем.

Надо:

Из логики Файла1 проинициализировать Public переменные Файла2.
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38168038
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RegisteredUserФайл1 открывает Файл2 и делает на его листах изменения и сохраняет Файл2 под другим именем.
То есть макросы в Файл2 не запускаются? Зачем тогда что-либо делать с переменными - они не сохраняются при закрытии файла.
Может, нужно создать workbook.CustomDocumentProperties или имена (возможно, скрытые) - они сохраняются.
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38168083
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser,

Код в других файлах можно писать при помощи VBE.
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38170009
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КазанскийRegisteredUserФайл1 открывает Файл2 и делает на его листах изменения и сохраняет Файл2 под другим именем.
То есть макросы в Файл2 не запускаются? Зачем тогда что-либо делать с переменными - они не сохраняются при закрытии файла.
Может, нужно создать workbook.CustomDocumentProperties или имена (возможно, скрытые) - они сохраняются.

долго объяснять почему надо именно так, НО ПРОСТО ПОВЕРЬТЕ - НАДО!
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38170186
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUserКазанскийпропущено...

То есть макросы в Файл2 не запускаются? Зачем тогда что-либо делать с переменными - они не сохраняются при закрытии файла.
Может, нужно создать workbook.CustomDocumentProperties или имена (возможно, скрытые) - они сохраняются.

долго объяснять почему надо именно так, НО ПРОСТО ПОВЕРЬТЕ - НАДО!

Мы попробуем поверить.
Если вы имеете в виду, что требуется передать значения переменных из одного Excel в другой, то куда проще написать коротенькую процедурку во втором, который будет принимать эти самые переменные. А из первого вызвать эту процедурку при помощи:
Код: vbnet
1.
Application.Run "ProcedureName Parameter1, Parameter2"



Ну или можно извратиться с VBE, примерно так:
Код: vbnet
1.
xlW.VBProject.VBComponents(1).CodeModule.InsertLines 1, "Option Explicit"



Если я правильно понял, что требуется.
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38171815
ikki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вообще не понял, в чем проблема.
есть два проекта.
pr1 и pr2
в pr1 есть стандартный модуль, в котором написано
Код: vbnet
1.
Public x


в любом месте, в любом модуле проекта pr2 пишем
Код: vbnet
1.
pr1.x = 5



конечно, в референсах проекта pr2 должна быть ссылка на проект pr1
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38184320
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наверно стоит пояснить все же зачем это надо.

итак
есть древний Excel-файл (FOld), где весьма замороченная логика.
есть много логики, которая работает на событиях Auto_Close, Workbook_BeforeClose, Workbook_BeforeSave
НО из-за несметного количества диалогов, юзер сам решает что ему делать с данными.

и есть новый Excel-файл (FNew), которые должен АВТОМАТИЧЕСКИ
вносить изменения в FOld, сохранять и закрывать его с новыми данными БЕЗ ВСЯКИХ ДИАЛОГОВ
(потому что некому отвечать на все вопросы).

Я бы хотел в FOld внести один флаг, который бы по умолчанию был допустим False и не влиял на работу старой логики никак,
а вот когда я делаю обновление через FNew, то устанавливать его в True,
чем я смог бы обходить все диалоги.
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38184425
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser,

Ну, по идее можно открыть старый файл новым при этом задать:

Код: vbnet
1.
Application.EnableEvents = False



Что остановит все AutoMacros, а дальше можно извращаться как душе угодно.
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38185814
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lbppbRegisteredUser,

Ну, по идее можно открыть старый файл новым при этом задать:

Код: vbnet
1.
Application.EnableEvents = False



Что остановит все AutoMacros, а дальше можно извращаться как душе угодно.

пасиба поробую это!
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38186144
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lbppbRegisteredUser,

Ну, по идее можно открыть старый файл новым при этом задать:

Код: vbnet
1.
Application.EnableEvents = False



Что остановит все AutoMacros, а дальше можно извращаться как душе угодно.

СПАСИБО!
зело помогло!
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38186338
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lbppb
Код: vbnet
1.
Application.EnableEvents = False


Что остановит все AutoMacrosУточню, что эта установка остановит обработку событий Workbook_BeforeClose, WorkSheet_Change и т.д.
Но она не влияет на "истинные авто-макросы" auto_open() и auto_close().
...
Рейтинг: 0 / 0
Excel - инициализация переменной в другом файле
    #38186646
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанскийlbppb
Код: vbnet
1.
Application.EnableEvents = False


Что остановит все AutoMacrosУточню, что эта установка остановит обработку событий Workbook_BeforeClose, WorkSheet_Change и т.д.
Но она не влияет на "истинные авто-макросы" auto_open() и auto_close().

Только что протеститровал, рабочим остается только auto_cose(). Но спасибо за дополнение, я не знал, хотя использую тот же трюк.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel - инициализация переменной в другом файле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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