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

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

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

Надо:

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

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

долго объяснять почему надо именно так, НО ПРОСТО ПОВЕРЬТЕ - НАДО!
...
Рейтинг: 0 / 0
28.02.2013, 20:08
    #38170186
lbppb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - инициализация переменной в другом файле
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
02.03.2013, 07:21
    #38171815
ikki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - инициализация переменной в другом файле
вообще не понял, в чем проблема.
есть два проекта.
pr1 и pr2
в pr1 есть стандартный модуль, в котором написано
Код: vbnet
1.
Public x


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



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

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

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

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

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

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



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

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

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



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

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

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

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



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

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


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


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

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


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