Содержание
- Excel works!
- Excel works!
- Как найти только что закрытый файл? Как быстро найти и открыть книгу Excel в т.ч. в VBA?
- Как найти и открыть книгу из самой программы? Горячая клавиша
- Как найти и открыть недавно закрытую книгу Excel?
- Как открыть уже открытые файлы?
- Как открыть несколько книг рядом?
- Как закрыть или открыть книгу Excel через VBA?
- Метод Workbooks.Open (Excel)
- Синтаксис
- Параметры
- Возвращаемое значение
- Замечания
- Пример
- Поддержка и обратная связь
Excel works!
Excel работает за вас
Excel works!
Thanks for Visiting
Как найти только что закрытый файл? Как быстро найти и открыть книгу Excel в т.ч. в VBA?
Многим знакома ситуация, когда вы недавно сохранили книгу и не помните? куда именно. Мне часто помогает возможность просмотра последних открытых книг Excel, для поиска только что сохраненных файлов. В этой статье мы поговорим о способах открыть книгу Excel, в т.ч. при помощи горячей клавиши и даже о соответствующих функциях VBA.
Что файл Excel открывается двойным щелчком по нему, я рассказывать не буду, мы поговорим о более сложных способах вызова книги Excel.
Как найти и открыть книгу из самой программы? Горячая клавиша
Зачастую пользователи не знают, что открыть книгу можно и не сворачивая Excel. Перейдите в меню файл (круглая кнопка в левом верхнем углу) — нажмите Открыть и выберите необходимую папку:
Так же работает горячая клавиша Ctrl+O .
Как найти и открыть недавно закрытую книгу Excel?
Если вы забыли куда сохранили только что созданную книгу (у меня так бывает), то найти ее не будет проблемой. Открыть последние используемые файлы можно через панель Последние документы. Опять же откройте меню файл (для версий 2007 и выше) и вы сразу увидите последние используемые вами файлы Excel.
Видите гвоздики справа? Вы можете закрепить какой-то файл при помощи них, и он всегда будет доступен здесь. Удобно, когда вы часто пользуетесь одним и тем же файлом. Просто кликните по гвоздику, и файл закрепится.
При открытии любой книги Excel в разделе Последние документы будет висеть закрепленный таким образом файл.
Список последних файлов будет меняться в зависимости от того, с какими файлами вы работаете. Список файлов состоит 25 элементов, но если зайти «Файл»-«Параметры»-«Дополнительно»-«Экран»-«Число документов в списке последних файлов:», то можно установить свое значение до 50 файлов.
В версиях программы 2013 и выше последние файлы доступны в меню кнопки открыть.
Как открыть уже открытые файлы?
Если у вас множество файлов, то иногда проще их найти при помощи инструментом закладка «Вид» раздел «Окно» инструмент «Перейти в другое окно».
Функция Перейти в другое окно в версии Excel 2016
Как открыть несколько книг рядом?
Если вам необходимо открыть несколько книг или окон рядом, то это тоже несложно. Возможность редактора подробно описана здесь .
Как закрыть или открыть книгу Excel через VBA?
Если у вас больше 15 файлов, которые надо регулярно открывать один за одним, то удобно будет записать макрос для открытия этих книг. Как записать макрос, читайте в отдельной статье .
Вам необходимы отдельные функции для открытия или закрытия Excel через VBA? Например, вам нужно, чтобы файл закрывался после окончания выполнения макроса, используйте такие команды:
Где C:primer.xlsx путь к файлу
Где ClsBK — переменная, которой присваиваем имя открытой книги, а потом закрываем.
Источник
Метод Workbooks.Open (Excel)
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Синтаксис
expression. Открыть (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Разделитель, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
Выражение Переменная, представляющая объект Workbooks .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
FileName | Необязательный | Variant | Строка. Имя файла открываемой книги. |
UpdateLinks | Необязательный | Variant | Указывает способ обновления внешних ссылок (ссылок) в файле, например ссылки на диапазон в книге Budget.xls в следующей формуле =SUM([Budget.xls]Annual!C10:C25) . Если этот аргумент опущен, пользователю будет предложено указать, как будут обновляться ссылки. Дополнительные сведения о значениях, используемых этим параметром, см. в разделе Примечания. |
Если Microsoft Excel открывает файл в формате WKS, WK1 или WK3 и аргумент UpdateLinks имеет значение 0, диаграммы не создаются; В противном случае Microsoft Excel создает диаграммы из диаграмм, присоединенных к файлу. ReadOnly Необязательно устанавливать. Variant Значение true, чтобы открыть книгу в режиме только для чтения. Format Необязательный Variant Если Microsoft Excel открывает текстовый файл, этот аргумент задает символ разделителя. Если этот аргумент опущен, используется текущий разделитель. Дополнительные сведения о значениях, используемых этим параметром, см. в разделе Примечания. Password Необязательный Variant Строка, содержащая пароль, необходимый для открытия защищенной книги. Если этот аргумент опущен, а для книги требуется пароль, пользователю будет предложено ввести пароль. WriteResPassword Необязательный Variant Строка, содержащая пароль, необходимый для записи в книгу, зарезервированную для записи. Если этот аргумент опущен, а книге требуется пароль, пользователю будет предложено ввести пароль. IgnoreReadOnlyRecommended Необязательный Variant Значение true , чтобы Microsoft Excel не отображал рекомендуемое сообщение только для чтения (если книга была сохранена с параметром «Только для чтения рекомендуется «). Происхождения Необязательный Variant Если файл является текстовым файлом, этот аргумент указывает, где он возник, чтобы кодовые страницы и возврат/строка каретки (CR/LF) можно было правильно сопоставить. Может быть одной из следующих констант XlPlatform : xlMacintosh, xlWindows или xlMSDOS. Если этот аргумент опущен, используется текущая операционная система. Разделитель Необязательный Variant Если файл является текстовым файлом, а аргумент Format равен 6, этот аргумент представляет собой строку, указывающую символ, который будет использоваться в качестве разделителя. Например, используйте Chr(9) для вкладок, «,» для запятых, «;» для точки с запятой или используйте пользовательский символ. Используется только первый символ строки. Изменяемость Необязательный Variant Если файл является надстройкой Microsoft Excel 4.0, этот аргумент имеет значение True , чтобы открыть надстройку, чтобы она была видимым окном. Если этот аргумент имеет значение False или опущен, надстройка открывается как скрытая и не может быть раскрыта. Этот параметр не применяется к надстройкам, созданным в Microsoft Excel 5.0 или более поздней версии.
Если файл является шаблоном Excel, значение True , чтобы открыть указанный шаблон для редактирования. Значение false , чтобы открыть новую книгу на основе указанного шаблона. Значение по умолчанию — False. Уведомить Необязательный Variant Если файл не удается открыть в режиме чтения и записи, этот аргумент имеет значение True , чтобы добавить файл в список уведомлений о файлах. Microsoft Excel откроет файл как доступный только для чтения, опрашивает список уведомлений о файлах, а затем уведомляет пользователя, когда файл станет доступен. Если этот аргумент имеет значение False или опущен, уведомление не запрашивается, и любые попытки открыть недоступный файл завершатся ошибкой. Конвертер Необязательный Variant Индекс первого преобразователя файлов, который следует попробовать при открытии файла. Сначала выполняется попытка указанного преобразователя файлов; Если этот преобразователь не распознает файл, все остальные преобразователи будут испытаны. Индекс преобразователя состоит из номеров строк преобразователей, возвращаемых свойством FileConverters . AddToMru Необязательный Variant Значение true , чтобы добавить эту книгу в список недавно использовавшихся файлов. Значение по умолчанию — False. Local Необязательный Variant Значение True сохраняет файлы на языке Microsoft Excel (включая параметры панели управления). Значение False (по умолчанию) сохраняет файлы на языке Visual Basic для приложений (VBA) (который обычно США английском языке, если проект VBA, из которого выполняется Workbooks.Open, не является старым проектом VBA с международной версией XL5/95). Поврежденная загрузка Необязательный XlCorruptLoad Может быть одной из следующих констант: xlNormalLoad, xlRepairFile и xlExtractData. Поведение по умолчанию, если значение не указано, — xlNormalLoad и не пытается выполнить восстановление при инициировании с помощью OM.
Возвращаемое значение
Объект Workbook , представляющий открытую книгу.
Замечания
По умолчанию макросы включены при открытии файлов программным способом. Используйте свойство AutomationSecurity , чтобы задать режим безопасности макросов, используемый при программном открытии файлов.
Можно указать одно из следующих значений в параметре UpdateLinks , чтобы определить, обновляются ли внешние ссылки (ссылки) при открытии книги.
Значение | Описание |
---|---|
0 | Внешние ссылки (ссылки) не будут обновляться при открытии книги. |
3 | Внешние ссылки (ссылки) будут обновлены при открытии книги. |
Можно указать одно из следующих значений в параметре Format , чтобы определить символ разделителя для файла.
Значение | Разделитель |
---|---|
1 | Вкладки |
2 | Запятыми |
3 | Пробелы |
4 | Точка с запятой |
5 | Отсутствует |
6 | Пользовательский символ (см. аргумент Разделитель ) |
Пример
В следующем примере кода открывается книга Analysis.xls, а затем выполняется ее макрос Auto_Open.
Следующий пример кода импортирует лист из другой книги на новый лист в текущей книге. Лист 1 в текущей книге должен содержать имя пути к книге для импорта в ячейку D3, имя файла в ячейке D4 и имя листа в ячейке D5. Импортированный лист вставляется после Листа1 в текущую книгу.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
lenok Пользователь Сообщений: 39 |
Помогите, пожалуйста. |
Johny Пользователь Сообщений: 2737 |
А файл какой? Excel? There is no knowledge that is not power |
lenok Пользователь Сообщений: 39 |
да. в 2003 экселе пытаюсь написать |
Johny Пользователь Сообщений: 2737 |
#4 23.05.2013 11:40:58
There is no knowledge that is not power |
||
lenok Пользователь Сообщений: 39 |
|
lenok Пользователь Сообщений: 39 |
а как сделать, чтобы выбор варианта ответа при появлении диалогового окна был автоматический, или чтобы оно вообще не вылазило??? |
Johny Пользователь Сообщений: 2737 |
#7 24.05.2013 14:28:11
Изменено: Johny — 24.05.2013 14:28:36 There is no knowledge that is not power |
||
lenok Пользователь Сообщений: 39 |
а можно ли сделать, чтобы он искал документ в поддиректориях??? |
Johny Пользователь Сообщений: 2737 |
#9 31.05.2013 17:18:58 Ставим галку: Tools -> References -> Microsoft Scripting Runtime
Изменено: Johny — 31.05.2013 17:19:49 There is no knowledge that is not power |
||
Hugo Пользователь Сообщений: 23249 |
#10 31.05.2013 17:29:09 Я чего-то не понимаю?
|
||
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Я тоже не понимаю смысла в поиске… |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Я сам — дурнее всякого примера! … |
lenok Пользователь Сообщений: 39 |
Просто документов очень много. и постоянно открывать файлы под определенными названиями….. смысл тогда составления макроса… Пишу для автоматизации процессов обработки информации, и остановилась на этом моменте.
|
Hugo Пользователь Сообщений: 23249 |
Если например ситуации такие: |
lenok Пользователь Сообщений: 39 |
Есть огромный отчет. после обработки макросом, надо, чтобы он брал имя файла из определенной ячейки и открывал фаил с таким именем. информации много, и такой отчет обрабатывается каждый месяц. примерное кол-во файлов на один отчет больше 1000, поэтому, сами понимаете, что открывать каждый, это рутина. таких отчетов за один месяц 30 штук. соответственно, около 30000 существующих файлов…вот как-то так все глобально…… просто открыть, с этим мы разобрались….. но некоторые файлы находятся в поддиректориях, и постоянно происходят какие-то перемещения в этой директории… |
Hugo Пользователь Сообщений: 23249 |
#16 03.06.2013 11:32:43 В теме http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=25457 есть файл http://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=40202&action=download Там есть такой код:
и т.д. |
||
lenok Пользователь Сообщений: 39 |
что-то я не могу разобраться совсем |
anvg Пользователь Сообщений: 11878 Excel 2016, 365 |
Пробуйте, первый запуск будет долгим. Далее быстрее. Если есть подозрение, что файлы в папке и подпапках изменили положение или имя, то нажать «Обновить». Путь к начальной папке задаётся константой baseFolder в методе InitializeFindю |
lenok Пользователь Сообщений: 39 |
#19 04.06.2013 07:29:04
я так понимаю, здесь надо прописать адрес самой папки, это понятно… |
||
anvg Пользователь Сообщений: 11878 Excel 2016, 365 |
#20 04.06.2013 07:50:49
Из активной ячейки (в ней только имя, без расширения) Изменено: anvg — 04.06.2013 07:52:42 |
||
lenok Пользователь Сообщений: 39 |
#21 04.06.2013 08:07:46 все, поняла….. все работает…спасибо большое…. и еще один вопрос, если можно….: до этого было прописано так, но он только с одной папки так открывает….
Изменено: lenok — 04.06.2013 23:58:03 |
||
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
#22 04.06.2013 08:24:36 А на кой тут цикл? Если имя файла известно, зачем перебирать все файлы?
Я сам — дурнее всякого примера! … |
||
lenok Пользователь Сообщений: 39 |
он не открывает тогда файл в поддиректории |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Ага. А с циклом, следовательно, открывает? Я сам — дурнее всякого примера! … |
lenok Пользователь Сообщений: 39 |
неа… тоже не открывает…. а надо, чтобы открывал… там мне уже без разницы, есть цикл или нет… надо, чтобы он поддиректории просматривал |
anvg Пользователь Сообщений: 11878 Excel 2016, 365 |
#26 04.06.2013 09:43:56
|
|
lenok Пользователь Сообщений: 39 |
|
Sandero Пользователь Сообщений: 14 |
#28 18.06.2019 13:20:28
Добрый день!
|
||||
При открытии файла Excel с такими формулами на другом компьютере, Excel начинает отображает формулы с указанием пути к файлу надстройки, в таком виде:
= ‘D:ПРОЕКТЫПапказаполнение документовFillDocuments.xla’! Пропись_Число(D12)
Кроме того, Excel может отобразить предупреждение о том, что автоматическое обновление ссылок отключено:
Разумеется, формулы после этого не работают, так как ссылаются на отсутствующий по данному пути файл.
Есть 4 варианта решения проблемы, выберите любой из них.
При постоянном использовании файла с разных компьютеров, рекомендую способ №1.
Если нужно исправить проблему разово (на прежнем компе файл больше не будет использоваться, или надстройка перемещена в другую папку), то выберите вариант 2, 3 или 4.
Не удается получить доступ к файлу excel — CodeRoad
Для настройки резервного копирования конкретного документа в приложении Microsoft Excel жмём «Файл — Сохранить как», затем – «Обзор». Жмём выпадающий список кнопки «Сервис», выбираем «Общие параметры».
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Онлайн-сервис позволяет ознакомиться с результатами его работы заранее, поэтому нам не нужно будет платить, если восстановление окажется невозможным. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Также может помочь отключение автозагрузки приложения, в котором возникает ошибка «Не удается найти (файл)». Открываем Диспетчер задач (в кнопке Пуск), ЛКМ выбираем нужную программу, затем кликаем на нее ПКМ и выбираем “Отключить”.
Не удается найти (файл). Проверьте, правильно ли указано имя, и повторите попытку. Решение
- отключить автозапуск программы в О ПРОГРАММЕ — ОПЦИИ
- закрыть Excel (или закрыть надстройку FillDocuments)
- переместить файл в новое расположение
- запустить надстройку из нового места
- включить автозапуск программы в О ПРОГРАММЕ — ОПЦИИ (если это нужно)
скорее всего, путь, к которому вы пытаетесь получить доступ, не существует. Кажется, вы пытаетесь сохранить в относительном месте, и у вас нет расширения файла в этой строке. Если вам нужно использовать относительные пути, вы можете проанализировать путь из ActiveWorkbook.FullName
3 ответа
Мне нужен доступ к файлу Excel. В приложении говорится, что невозможно получить доступ к указанному файлу. Проблема в том, что он не открыт. Я понял, что диспетчер задач содержит некоторые экземпляры Excel, поэтому я вышел из них. Пользователь не хочет этого делать. Мне нужно сделать это по коду.
У меня есть приложение create Office Excel на моей машине (XP). и я поместил приложение в windows server 2008, выдав следующую ошибку. Microsoft Office Excel не может получить доступ к файлу ‘serverInput.xls’. Есть несколько возможных причин: Имя файла или путь к нему не существуют. Файл.
2) Если ваша служба настроена без взаимодействия с рабочим столом, то при первом запуске приложения office (например, Excel) заморозьте диалоговое окно учетных данных пользователя — вы не можете видеть это окно в этом режиме — чтобы решить эту проблему, включите взаимодействие с десктопом, переключитесь в окно office после запуска службы и вручную введите учетные данные.
Другая информация там (используйте Google translater для чтения).
Существует подробная статья базы знаний MS под названием » Соображения по автоматизации Office на стороне сервера». Некоторые ключевые выдержки:
Очевидно, как было указано в комментариях, использование учетной записи SYSTEM является ошибкой. Вам нужно будет запустить службу под учетной записью, имеющей профиль пользователя.
Но даже когда вы это исправите, другая точка пули убьет вас. Офисные приложения действительно предполагают, что они работают под интерактивным рабочим столом. Мой совет-отказаться от попыток автоматизировать Office из службы. Вместо этого используйте библиотеку, такую как Aspose. Или запустите процесс на интерактивном рабочем столе.
Microsoft Excel не может получить доступ к этому файлу ‘C:xxxtest.xls’. Существует несколько возможных причин: • имя файла или путь не существует. • Файл используется другой программой. • Книга, которую вы пытаетесь сохранить, имеет то же имя, что и открытая в данный момент книга. Я следовал.
наконец, я вызвал файл .bat из действий планировщика задач.
Формулы сбиваются при использовании файла Excel на разных компьютерах | Инструкция по программе FillDocuments
Я также попытался скопировать файл шаблона excel в какой — то временный каталог (где сервис имеет право писать-это проверено) и попытался открыть его оттуда, но безуспешно (хотя этот вариант хорошо работает и в консольном приложении).
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
После этого, на панели инструментов появится новое подменю Дополнительно , в котором нам нужно выбрать пункт Восстановить формулы. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Если вдруг вам не удаётся открыть рабочий файл с данными Excel, то какова вероятность успешного восстановления этих данных и что для этого надо сделать? К сожалению, это распространённая ошибка Microsoft Excel. У проблемы есть несколько вариантов решения. Только перепробовав все варианты можно сказать, возможно ли восстановить повреждённый Excel-файл.
Не удаётся открыть файл Excel: как восстановить документ
Также может помочь отключение автозагрузки приложения, в котором возникает ошибка «Не удается найти (файл)». Открываем Диспетчер задач (в кнопке Пуск), ЛКМ выбираем нужную программу, затем кликаем на нее ПКМ и выбираем “Отключить”.
Изменение параметров вычислений Microsoft Excel
Есть небольшая уловка, как можно иногда открыть повреждённый документ Excel. Перед запуском документов приложение Microsoft Excel каждый раз пересчитывает формулы. И вот в редких случаях именно эта особенность приложения мешает открыть файл. Можно попробовать её убрать, ничего сложного в этом нет. Запускаем Microsoft Excel, создаём новый документ, жмём «Файл», заходим в «Параметры».
Переходим в раздел «Формулы». Здесь нужно в графе «Параметры вычислений» сделать активным пункт «Вручную». Жмём «Ок».
После чего, не закрывая новый открытый документ, пытаемся открыть нужный нам через «Файл» – «Открыть».
Не вышло? Ничего страшного, с самого начала шансы были невысоки, но попробовать этот способ всё равно стоило. Переходим к профессиональным инструментам для восстановления документов Excel.
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Утилита развивается и распространяется с начала 2000-х годов, имеет многоязычный интерфейс включая русский , восстанавливает все типы Excel-файлов всех версий, начиная с экзотического сейчас Excel 97. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Есть несколько доступных онлайн-сервисов восстановления повреждённых файлов Microsoft Excel. Наиболее удобный и доступный по цене (всего $5 за файл) находится по этому адресу: https://onlinefilerepair.com/ru/excel-repair-online.html.
Vba excel путь к текущему файлу — IT Справочник
Элемент управления под названием Размещение документа недоступен на ленте, но вы можете добавить его на свою панель быстрого доступа (рис. 177.1). К сожалению, вы не можете изменить ширину элемента, но если щелкнете на отображаемом имени, то увидите весь путь.
Excel VBA allows you to open a workbook directly — all you need is the full path of the file, including the file name. However, locating and supplying the file path each time may can be tedious when working with multiple files. In this guide, we’re going to show you how to display File Open dialog in VBA.
Download Workbook
Opening a workbook in VBA
You can open workbooks in VBA using the Workbooks.Open method. This method accepts fifteen optional arguments, including the file name of the workbook you want to open.
Workbooks.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
Supply the file name with its full path to open the workbook.
Workbooks.Open «C:My DocumentsJuneIncome.xlsx»
Or
Workbooks.Open Filename:=»C:My DocumentsJuneIncome.xlsx»
Either line of code can open the workbook in the given path. The opened workbook becomes the active workbook.
Check out other optional arguments to determine how you want to open your workbook, such as in read-only mode, by updating external links, or with a password. Here is the documentation.
Displaying File Open dialog
File Open dialog can return the file name, which is needed for Workbooks.Open, along with its path. To display the File Open dialog, you need to call the Application.GetOpenFilename method.
Application.GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
The Application.GetOpenFilename method can take five optional arguments using which you can select the accepted file types, title of the dialog, or allow selecting multiple files.
To open the dialog in default state (without any filtering and ability to select single file) use it without any arguments. Assign the command to a string variable to set the variable with selected file’s full path.
Dim FullFileName as String
FullFileName = Application.GetOpenFilename
File Filter
On the other hand, applying a filter can be helpful in giving the end user only the files they need. You can use FileFilter to set filters on the Open File dialog box.
The FileFilter argument accepts a special string specifying file filtering criteria. You need to supply file types as friendly name — file type pairs. Each pair, name and type is separated by a comma (,) character.
friendly name 1, file type 1, friendly name 2, file type 2, …
If a friendly name covers multiple types, use semicolon characters to split file types:
friendly name 1, file type 1; file type 2; file type …, friendly name 2, file type 4; file type 5; file type …, …
Here is an example for displaying the dialog that accepts Excel Files only.
FullFileName = Application.GetOpenFilename(FileFilter:=»Excel Files,*.xl*»)
The following sample demonstrates the scenario at the above screenshot which displays two items as filters:
ExternalFileName = Application.GetOpenFilename(FileFilter:=»Excel Files,*.xl*;*.xm*,Text Files,*.txt;*.csv»)
Multiple Files
Another important feature of the Open File dialog is its ability to allow selecting multiple files. If the MultiSelect argument is set to True, the Open File dialog returns each selected file name in an array. Thus, you need to assign the dialog to a Variant type of variable instead of String.
Dim ExternalFileName As Variant
ExternalFileName = Application.GetOpenFilename(FileFilter:=»Excel Files,*.xl*,Text Files,*.txt;*.csv», MultiSelect:=True)
When you click the Open button, the assigned variable will have an array of filenames with paths. A common scenario is to use a loop to access each file name.
For i = LBound(ExternalFileName) To UBound(ExternalFileName) Workbooks.Open ExternalFileName(i) Next i
Before start, you need to open the VBA (Visual Basic for Applications) window and add a module. A module is where you can write code.
- Press Alt + F11 to open the VBA window
- In the VBA window, click Insert on the toolbar
- Click the Module option
Open a single workbook
The following code displays the Open File dialog for Excel and some text files by allowing to select a single file only. After file name and path are set to the string variable, the code can copy content from the opened file to the existing file. You can simply copy this code and paste your VBA.
Note: GetFilenameFromPath is a custom function which parse the file name from the full path. You can find its code in the example file.
Open multiple workbooks
This time Application.GetOpenFilename method is updated for multiple file selection. You can see the MultiSelect:=True argument in the code below. This is an example where the code was modified to execute same action in a loop.
Sub SingleFile() 'Turn off screen updates to hide window transactions Application.ScreenUpdating = False 'Ignore alerts such as "large amount of data" message while copying Application.DisplayAlerts = False 'Define and set variables Dim PrimaryFileName As String, ExternalFileName As String PrimaryFileName = ThisWorkbook.Name 'Call Open File dialog ExternalFileName = Application.GetOpenFilename(FileFilter:="Excel Files,*.xl*,Text Files,*.txt;*.csv") 'End the macro if no ile is selected If ExternalFileName = False Then MsgBox "You are not selected a file" Exit Sub End If 'Open the specified file and execute your code Workbooks.Open ExternalFileName Range("A1:G20").Copy 'Copy range from external file Windows(PrimaryFileName).Activate 'Activate the primary file Sheets.Add After:=ActiveSheet 'Add a new sheet ActiveSheet.Paste 'Paste into new sheet Workbooks(GetFilenameFromPath(ExternalFileName)).Close SaveChanges:=False 'Close the external file without saving 'Reactivate alerts and screen updates Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Метод Workbook. Open (Excel)
‘\———————————————————————————————————-
Excel поддерживает возможность открытия URL-адреса в качестве другой книги Excel с помощью Workbooks.Open method:
Из MSDN:
Sub OpenUSDRatesPage()
Dim objBK As Workbook
Dim objRng As Range
‘Open the page as a workbook.
Set objBK = Workbooks.Open(«http://www.x-rates.com/tables/USD.HTML»)
‘Find the Canadian Dollar cell.
Set objRng = objBK.Worksheets(1).Cells.Find(«Canadian Dollar»)
‘Retrieve the exchange rate.
MsgBox «The CAD/USD exchange rate is » & objRng.Offset(-6, -1).Value
End Sub
‘\—————————————————————————————————————
Метод Workbook. Open (Excel)
- 18.05.2019
Открывает книгу.
Синтаксис
Expression. Open (открыть ) (Filename, UpdateLinks, ReadOnly, Format, Password, вритереспассворд, игноререадонлирекоммендед, Origin,- Limit, редактируемый, _Notify _, Converter, аддтомру, Local, корруптлоад)
Expression (выражение ) Переменная, представляющая объект книги .
Параметры
Имя |
Обязательный или необязательный |
Тип данных |
Описание |
FileName |
Необязательный |
Variant |
Строка. Имя файла книги, которую необходимо открыть. |
UpdateLinks |
Необязательный |
Variant |
Задает способ обновления внешних ссылок (ссылок) в файле (например, ссылки на диапазон в книге бюджет. xls в следующей формуле =SUM([Budget.xls]Annual!C10:C25)). Если этот аргумент не указан, пользователю предлагается указать, как будут обновляться ссылки. Для получения дополнительных сведений о значениях, используемых этим параметром, обратитесь к разделу «Примечания». Если Microsoft Excel открывает файл в формате WKS, WK1 или WK3, а аргумент UpdateLinks имеет значение 0, диаграммы не создаются; в противном случае Microsoft Excel создает диаграммы на основе диаграмм, вложенных в файл. |
ReadOnly |
Необязательно устанавливать. |
Variant |
Значение true, чтобы открыть книгу в режиме только для чтения. |
Format |
Необязательный |
Variant |
Если Microsoft Excel открывает текстовый файл, этот аргумент задает символ разделителя. Если этот аргумент не указан, используется текущий разделитель. Для получения дополнительных сведений о значениях, используемых этим параметром, обратитесь к разделу «Примечания». |
Password |
Необязательный |
Variant |
Строка, содержащая пароль, необходимый для открытия защищенной книги. Если этот аргумент опущен и для книги требуется пароль, пользователю предлагается ввести пароль. |
Вритереспассворд |
Необязательный |
Variant |
Строка, содержащая пароль, необходимый для записи в книгу, зарезервированную для записи. Если этот аргумент опущен и для книги требуется пароль, пользователю будет выдан запрос на ввод пароля. |
Игноререадонлирекоммендед |
Необязательный |
Variant |
True , чтобы Microsoft Excel не отображал рекомендуемое только для чтения сообщение (рекомендуется ли книга была сохранена с помощью параметра » только для чтения «). |
Основания |
Необязательный |
Variant |
Если файл является текстовым, этот аргумент указывает на то, где он был создан, чтобы страницы кода и возврат каретки/перевод строки (CR/LF) могли быть сопоставлены правильно. Может быть одной из следующих констант кслплатформ : кслмаЦинтош, кслвиндовсили кслмсдос. Если этот аргумент не указан, используется текущая операционная система. |
Разделитель |
Необязательный |
Variant |
Если файл является текстовым файлом, а аргумент Format имеет значение 6, этот аргумент представляет собой строку, задающую символ, который будет использоваться в качестве разделителя. Например, используйте Chr (9) для табуляции, используйте «,» для запятых, введите «;» для точки с запятой или используйте специальный символ. Используется только первый символ строки. |
Изменяемость |
Необязательный |
Variant |
Если файл является надстройкой Microsoft Excel 4,0, этот аргумент имеет значение true , чтобы открыть надстройку, чтобы она стала видимым окном. Если этот аргумент имеет значение false или опущен, надстройка открывается как скрытая и не может быть скрыта. Этот параметр не применяется к надстройкам, созданным в Microsoft Excel 5,0 или более поздней версии. Если файл является шаблоном Excel, имеет значение true , чтобы открыть указанный шаблон для редактирования. Значение false , чтобы открыть новую книгу на основе указанного шаблона. Значение по умолчанию — False. |
Уведомления |
Необязательный |
Variant |
Если файл не может быть открыт в режиме чтения и записи, этот аргумент имеет значение true , чтобы добавить файл в список уведомлений о файле. Microsoft Excel откроет файл как доступный только для чтения, опросить список уведомлений о файле, а затем уведомить пользователя, когда файл станет доступен. Если этот аргумент имеет значение false или опущено, уведомления не запрашиваются, а все попытки открыть недоступный файл завершатся ошибкой. |
Счет |
Необязательный |
Variant |
Индекс первого конвертера файлов, который будет пытаться открыть файл. Заданный конвертер файлов сначала пытается выполнить операцию. Если этот конвертер не распознает файл, попытаются выполнить все другие конвертеры. Индекс преобразователя состоит из номеров строк преобразователей, возвращаемых свойством FileConverters . |
Аддтомру |
Необязательный |
Variant |
Значение true , чтобы добавить эту книгу в список недавно использовавшихся файлов. Значение по умолчанию — False. |
Local |
Необязательный |
Variant |
True — сохраняет файлы на языке Microsoft Excel (включая параметры панели управления). False (ложь ) (по умолчанию) — сохранение файлов на языке Visual Basic для приложений (VBA) (как правило, это английская версия, если проект VBA, в котором запущены книги, не является устаревшим международным проектом XL5/95 VBA). |
Корруптлоад |
При необходимости |
XlCorruptLoad |
Может быть одной из следующих констант: кслнормаллоад, кслрепаирфиле и кслекстрактдата. Поведение по умолчанию, если значение параметра не указано, не равно кслнормаллоади не выполняет восстановление при запуске с помощью объектной модели. |
Возвращаемое значение
Объект книги , представляющий открытую книгу.
Примечания
По умолчанию при открытии файлов программным способом включаются макросы. Используйте свойство аутоматионсекурити , чтобы задать режим безопасности макросов, используемый при программном открытии файлов.
В параметре UpdateLinks можно указать одно из следующих значений, чтобы определить, обновляются ли внешние ссылки (ссылки) при открытии книги.
Значение |
Описание |
нуль |
Внешние ссылки (ссылки) не будут обновляться при открытии книги. |
4 |
Внешние ссылки (ссылки) будут обновляться при открытии книги. |
Чтобы определить символ разделителя для файла, можно указать одно из следующих значений в параметре Format .
Значение |
Разделитель |
1,1 |
Вкладки |
2 |
Запятыми |
4 |
Бель |
SP4 |
Запятой |
17:00 |
Отсутствует |
6 |
Настраиваемый символ (см. аргумент- Разделитель ) |
Пример
Следующий пример кода открывает книгу Analysis. xls и выполняет свой макрос Ауто_опен.
VB
Workbooks.Open «ANALYSIS.XLS»
ActiveWorkbook.RunAutoMacros xlAutoOpen
В приведенном ниже примере кода показано, как импортировать лист из другой книги на новый лист в текущей книге. Лист1 в текущей книге должен содержать имя пути к книге, которую необходимо импортировать, в ячейке D3, имя файла в ячейке D4, а имя листа в ячейке D5. Импортированный лист вставляется после Лист1 в текущей книге.
VB
Sub ImportWorksheet()
‘ This macro will import a file into this workbook
Sheets(«Sheet1»).Select
PathName = Range(«D3»).Value
Filename = Range(«D4»).Value
TabName = Range(«D5»).Value
ControlFile = ActiveWorkbook.Name
Workbooks.Open Filename:=PathName & Filename
ActiveSheet.Name = TabName
Sheets(TabName).Copy After:=Workbooks(ControlFile).Sheets(1)
Windows(Filename).Activate
ActiveWorkbook.Close SaveChanges:=False
Windows(ControlFile).Activate
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.