Публикации
Публикации  »  VBA, Excel

Работа с внешним 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:="имя_нового_файла" ' Записать в новый файл
wb.Close ' Закрыть книгу

Если нужно, можно закрыть книгу без сохранения изменений таким образом:

wb.Close False
Категория: VBA, Excel

Комментарии к статье:

Пока комментариев нет, ваш будет первым ;)

Добавить комментарий: