Подробно ознакомимся как открыть файл макросом в Excel и изучим особенности параметров открытия файла.
Если нам необходимо неоднократно открывать или закрывать файл в Excel, то использование макроса существенно ускоряет и упрощает данную задачу.
Макрос открытия файла в Excel
Для начала запишем полный путь с названием файла, который и будем открывать с помощью макроса, например, в ячейке A1 на Листе 1 (название типа C:\Documents and Settings\Открытие_файла.xlsx).
Далее заходим в редактор VBA (нажимаем комбинацию клавиш Alt + F11) и записываем в модуль следующий макрос:
1 2 3 4 |
Sub Open_file() 'Макрос открытия файла FilePath = Sheets("Лист1").Cells (1,1) 'Забираем полный путь к файлу из ячейки A1 на листе "Лист1" Workbooks.Open Filename:= FilePath 'Открытие файла End Sub |
Можно также прописать дополнительные параметры открытия файла, рассмотрим основные из них:
- UpdateLinks — обновление внешних ссылок в файле;
- ReadOnly — открытие файла в режиме чтения;
- Password — пароль для открытия защищенной книги;
- WriteResPassword — пароль для внесения изменений в защищенную от записи книгу.
1 2 3 4 |
Sub Open_file() FilePath = Sheets("Лист1").Cells (1,1) Workbooks.Open Filename:= FilePath, UpdateLinks:=False, ReadOnly:=True 'Открытие файла под чтением без обновления ссылок End Sub |
Например, данный макрос будет открывать файл в режиме чтения (т.е. без возможности вносить изменения в текущую версию) без обновления внешних ссылок в файле.
Удачи вам и до скорой встречи на страницах блога Tutorexcel.ru!
День добрый! Помогите, пожалуйста, есть файл Excel, в котором построены ряд сводных таблиц. Данные для сводных таблиц получаются через подключение к базе SQL.
При открытии данные обновляются автоматически.
Дополнительно требуется сделать еще некоторое форматирование и расчет показателей в сводных таблицах. Написан макрос, имя auto_open()
При открытии макрос запускается. Но такое ощущение, что сперва происходит запуск макроса, а лишь потом обновление данных в таблицах. В итоге — таблицы выглядят не так, как ожидалось.
Что сделать?
Попробуйте в самом начале кода макроса для открытия прописать пересчет данных с помощью Calculate, чтобы в первую очередь обновились таблицы, а потом уже стал выполняться сам макрос.
Если не сложно, пропишите макросом последовательное открытие всех файлов в цикле, пути которых прописаны в ячейках первого столбца, количество которых может быть разным.
Александр, надо добавить простой цикл типа:
For i = 1 to N
‘открытие файла
Next i
Подробнее написал Вам в почту.