Страницы: 1
RSS
Сокрытие-Отображение листа в другой книге, не открывая ее.
 
Доброе утро, господа программисты.
Подскажите с решением вопроса.

Написал макрорекордером небольшой макрос - суть которого в сокрытии-отображении определенного листа - в другой книге.
Макрос находится в файле 1.
А лист которые скрывается-отображается находится в файле 2.
Проблема в том, что для того чтобы этот макрос работал - книга должна быть открыта.
Идея о кратковременном открытии файла 2, а затем его закрытии - не подходит.

Как заставить макрос скрывать лист в другом файле - вообще его не открывая ?
 
Не открывая вторую книгу не получится. Открывайте её в невидимом для пользователя режиме.
 
Цитата
Юрий М написал:
Не открывая вторую книгу не получится. Открывайте её в невидимом для пользователя режиме.
Это почему же?
Если можно записать значение в закрытую книгу, не открывая ее - то почему нельзя изменить параметры листа в этой книге?  
 
На мой взгляд все же придется открывать но там же на долю секунды Активировать/Изменить_Имя/Закрыть.
Либо как сказал:
Цитата
Юрий М написал:
Открывайте её в невидимом для пользователя режиме.
В невидимом режиме, хотя сам не знаю как это)
 
Цитата
visors16 написал:
Это почему же?
Согласен с Вами. Можно. Изучайте спецификацию файлов формата xls, бинарно считывайте все данные о его содержимом и возможно(!) удастся найти и изменить тот параметр, который отвечает за видимость листа.
Но проще как уже написали - тупо открыть и закрыть, установив перед этим Application.ScreenUpdating = False(потом вернуть).

Цитата
Dotodot500 написал:
В невидимом режиме, хотя сам не знаю как это)
это через GetObject
Изменено: The_Prist - 17.02.2017 10:40:34
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:
через GetObject
Мне кажется, что достаточно будет отключить обновление экрана )
 
Юрий М, ясно... ну хоть так.
А код как должен выглядеть?
 
Вот странно...Мне казалось, если Вы умеете делать это:
Цитата
visors16 написал:
Если можно записать значение в закрытую книгу
то с кодом на открытие книги и скрытие листа проблем быть вообще не должно. Притом что примеров в сети и на форуме валом.
Записать значение в закрытую книгу я вот не могу. Не поделитесь? А я покажу код, который скрывает лист.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
))
Код
Application.ScreenUpdating = False 'Эта строка перед открытием книги
'''''''Здесь Ваши операции со второй книгой
Application.ScreenUpdating = True 'Эта строка после закрытия книги
 
Цитата
visors16 написал: Как заставить макрос скрывать лист в другом файле - вообще его не открывая ?
Долго читал, много думал...
ЗАЧЕМ вообще заморачиваться с видимостью листа в итак ЗАКРЫТОЙ книге?
Мне кажется Ваша высшая цель вовсе не в этом, а в том, что-бы получить данные из закрытой книги? Если это так, то на просторах масса примеров
Например
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
ЗАЧЕМ вообще заморачиваться с видимостью листа в итак ЗАКРЫТОЙ книге?
А помните, мы одного гостя уже мучили таким вопросом? Он так и не сознался ))
 
The_Prist, да валяется где-то.... По-моему я с этого же форума его и скачал.
Но там точно можно было заносить число в закрытую книгу. Возможно действительно просто книга как-то в невидимом режиме открывалась на мгновение... Я сам не эксперт.
 
Цитата
Sanja написал:
Мне кажется Ваша высшая цель вовсе не в этом, а в том, что-бы получить данные из закрытой книги?
Sanja, да нет.
Операции с видимостью листа в другом файле - это вроде как ввод информации, а не получение ее.
 
Ну да ладно.
В общем - СкринАпдейт.... Буду пробовать.
Всем спасибо за помощь.
 
Тут вообще главное заблуждение в том, что книга не открывается. Каким бы методом мы не обращались к файлу - он все равно открывается так или иначе. Вопрос стоит лишь в том, блокируется ли файл на время обращения и какие возможности по получению данных и модификации файла нам будут доступны.
Подумайте: как можно что-то достать из сумочки не открыв её и никоим образом не затронув(разрезать, разорвать и т.д.)? С файлами все так же.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх