Работа с внешним Excel файлом из VBA
Задача по объединению данных из нескольких Excel-файлов, или подгрузка доп.данных из внешнего файла решается достаточно просто: создается объект Excel, который можно скрыть визуально, затем открывается необходимый файл и выполняются нужные действия. Просто приведу несколько примеров.
Открытие файла Excel
Set objExcel = New Excel.Application objExcel.Visible = False Set wb = objExcel.Workbooks.Open(fname) Set ws = wb.Sheets(1)
В первой строке запускаем новый Excel, затем делаем его невидимым, в 3-й строке открываем файл fname. В последней строке получаем первый лист открытого excel-кого файла.
Альтернативный вариант открытия файла
Set objExcel = New Excel.Application Set wb = objExcel.Workbooks wb.Open fname, local:=True Set ws = wb.Item(1).ActiveSheet
При открытии файла можно использовать доп.параметры (приведу некоторые):
UpdateLinks — обновлять или нет внешние ссылки при открытии файла;
ReadOnly — открытие в режиме только для чтения;
Format — используемый при открытии разделитель (1 — символ tab, 2 — запятые, 3 — пробелы, 4 — точка с запятой, 5 — без разделителя, 6 — пользовательский разделитель, заданный в Delimiter);
Delimiter — пользовательский разделитель (в случае, если Format = 6);
Origin — тип операционной системы (xlMacintosh, xlWindows или xlMSDOS);
Local — использование в Excel языка такого же, как в открываемом файле.
Теперь можно выполнять какие-то действия с открытым файлом, просто обращаясь через wb и ws.
ws.Cells(1, 1).Value = "Test" ws.Cells(1, 1).Font.Size = 18 ' Поменять размер шрифта ws.Cells(1, 1).HorizontalAlignment = xlCenter '
Записать книгу и закрыть
wb.Save ' Записать с тем же именем wb.SaveAs Filename:="имя_нового_файла", FileFormat:=xlOpenXMLWorkbookMacroEnabled ' Записать в новый файл wb.Close ' Закрыть книгу
Для записи текущей книги (где находится макрос), можно использовать:
ActiveWorkbook.SaveAs
Чтобы сохранить или перезаписать книгу Excel без вопросов, можно применить такой вариант:
Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="c:\Temp\000\1.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled Application.DisplayAlerts = True
У метода SaveAs есть несколько параметров сохранения, с ними можно ознакомиться на сайте Microsoft.
Если нужно, можно закрыть книгу Excel без сохранения изменений таким образом:
Как открыть файл vba
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Метод 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) . Если этот аргумент опущен, пользователю будет предложено указать, как будут обновляться ссылки. Дополнительные сведения о значениях, используемых этим параметром, см. в разделе Примечания. |
Возвращаемое значение
Объект Workbook , представляющий открытую книгу.
Замечания
По умолчанию макросы включены при открытии файлов программным способом. Используйте свойство AutomationSecurity , чтобы задать режим безопасности макросов, используемый при программном открытии файлов.
Можно указать одно из следующих значений в параметре UpdateLinks , чтобы определить, обновляются ли внешние ссылки (ссылки) при открытии книги.
| Значение | Описание |
|---|---|
| 0 | Внешние ссылки (ссылки) не будут обновляться при открытии книги. |
| 3 | Внешние ссылки (ссылки) будут обновлены при открытии книги. |
Можно указать одно из следующих значений в параметре Format , чтобы определить символ разделителя для файла.
| Значение | Разделитель |
|---|---|
| 1 | Вкладки |
| 2 | Запятыми |
| 3 | Пробелы |
| 4 | Точка с запятой |
| 5 | Отсутствует |
| 6 | Пользовательский символ (см. аргумент Разделитель ) |
Пример
В следующем примере кода открывается книга Analysis.xls, а затем выполняется ее макрос Auto_Open.
Workbooks.Open "ANALYSIS.XLS" ActiveWorkbook.RunAutoMacros xlAutoOpen
Следующий пример кода импортирует лист из другой книги на новый лист в текущей книге. Лист 1 в текущей книге должен содержать имя пути к книге для импорта в ячейку D3, имя файла в ячейке D4 и имя листа в ячейке D5. Импортированный лист вставляется после Листа1 в текущую книгу.
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 и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Как открыть VBA файлы? 4 простых метода решения таких проблем
Когда вы сталкиваетесь с проблемой с неизвестным файлом VBA и не знаете, как открыть такой файл, первый шаг, который вы должны сделать, это определить причину данной проблемы. Мы покажем вам, как решить наиболее распространенные проблемы с файлами VBA и как их решить, в 4 простых шага.
- 1. VBA расширение файла
- 2. Как открыть файл VBA?
- 2.1 Убедитесь, что файл правильно связан с выбранным программным обеспечением
- 2.2 Установите программу, которая поддерживает VBA файлы
- 2.2.1 Программы, поддерживающие файлы с расширением VBA
VBA расширение файла
- Тип файла Visual Basic VBA Module
- Разработчик файлов Microsoft Corporation
- Категория файла Другие файлы
- Рейтинг популярности файлов
Как открыть файл VBA?
В некоторых случаях проблемы могут возникнуть при попытке открыть файлы VBA. Приведенные ниже шаги могут быть полезны для решения таких проблем.
Шаг 1 – Убедитесь, что файл правильно связан с выбранным программным обеспечением
Первое, что пользователь должен сделать, это связать приложение с файлами VBA. Может случиться так, что даже если в системе установлено приложение, поддерживающее файлы VBA, оно не будет правильно связано с этим форматом файла. Это можно легко исправить, связав программу с файлами VBA. Чтобы связать такие файлы с данным приложением, пользователь должен открыть меню файлов (щелкнув правой кнопкой мыши по файлу) и выбрав «Открыть с помощью». Список предлагаемых приложений будет отображаться в верхней части меню. Затем выберите приложение и подтвердите свой выбор, установив флажок «Всегда использовать выбранное приложение для открытия файлов такого типа». Подтвердите свой выбор, нажав ОК.
Чтобы открыть VBA файл, сфокусируйтесь на шагах 1 и 2
В большинстве случаев для открытия файлов с расширением VBA должно быть достаточно следующих инструкций на шаге 1 и 2. Прежде чем предпринимать следующие шаги, протестируйте все программы, перечисленные ниже.
Шаг 2 – Установите программу, которая поддерживает VBA файлы
Если случится так, что раздел с предлагаемыми программами будет пустым, наиболее вероятно, что в системе не будет установлена программа, поддерживающая файлы VBA. Выберите программу из следующего списка и установите ее:
