Обмен технологиями

Как открыть, сохранить и закрыть книгу Excel в VBA

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Предисловие

В этом разделе рассказывается, как использовать метод VBA для открытия книги Excel, сохранения и закрытия книги Excel, а также использовать методы Open, Save и Close соответственно.


1. Используйте метод Open, чтобы открыть книгу.

Workbooks.Open(ИмяФайла,ОбновитьСсылки,ТолькоЧтение,Формат,Пароль,WriteResPassword,Игнорировать-ТолькоЧтениеРекомендуется,Источник,Разделитель,Редактируемый,Уведомить,Конвертер,ДобавитьВMru,Локальный,Поврежденный-Загрузка)
虽参数较多,但只有FileName为必填参数,表示需要打开的工作簿文件名,关于参数说明请参考下表:

параметриллюстрировать
Имя файлаТребуется имя файла книги, которую необходимо открыть, и абсолютный путь к файлу.
ОбновлениеСсылки Указывает, как обновляются внешние ссылки (ссылки) в книге.Возможные значения: 0 или 3, что означает, соответственно, не обновлять внешние ссылки при открытии книги и обновлять внешние ссылки при открытии книги.
Только для чтенияЗначение True означает открытие книги в режиме только для чтения.
Формат При открытии текстового файла используйте этот параметр, чтобы указать разделитель. Возможные значения: 1 (табуляция), 2 (запятая), 3 (пробел), 4 (точка с запятой), 5 (нет), 6 (пользовательский символ, заданный параметром Delimiter).
Пароль Если для открываемой книги установлен пароль открытия, используйте этот параметр, чтобы указать пароль.Если пароль установлен, но этот параметр не заполнен, появится диалоговое окно с предложением ввести пароль.
WriteResPasswordЕсли открываемая книга имеет пароль для защиты структуры, используйте этот параметр, чтобы указать соответствующий пароль.
ИгнорироватьТолькоЧитатьРекомендуетсяЗначение True означает, что рекомендуемая информация, доступная только для чтения, не отображается.
Источник При открытии текстового файла используйте этот параметр, чтобы указать, из какой операционной системы был создан файл, чтобы правильно обрабатывать кодовые страницы и возвраты каретки/переводы строк. Возможные значения — константы xlMacintosh, xlWindows, xlMSDOS.
РазделительЕсли при открытии текстового файла для параметра «Формат» установлено значение 6, используйте этот параметр, чтобы указать символ в качестве разделителя. Если установлено несколько символов, по умолчанию будет использоваться только первый символ.
РедактируемыйЕсли открываемый файл является надстройкой Excel 4.0, то, когда значение этого параметра равно True, надстройка является видимым окном, если оно имеет значение False или этот параметр игнорируется, надстройка открывается в скрытом виде; mode и не может быть сделан видимым. Этот параметр нельзя использовать в версиях 5.0 и выше;
Поставить в известность Если открываемый файл не может быть открыт в режиме чтения-записи, если значение этого параметра равно True, файл можно добавить в список уведомлений о файлах. Excel откроет файл в режиме только для чтения и опрашивает список уведомлений о файлах, уведомляя пользователя, когда файл доступен.Если значение этого параметра равно False или опущено, уведомление не запрашивается и недоступные файлы не могут быть открыты.
Конвертер Индексный номер конвертера файлов, который первым пытались использовать при открытии файла. Если файл не распознается указанным конвертером файлов, попробуйте использовать другой конвертер.
Добавить в Mru Если значение этого параметра равно True, задание не будет добавлено в список недавно использованных файлов. По умолчанию — ложь
МестныйЕсли значение этого параметра равно True, файл будет сохранен на языке Excel (включая настройки панели управления). По умолчанию установлено значение False, файл будет сохранен на языке VBA.
ПоврежденныйЗагрузка Доступные значения — это константы xlNormalLoad, xlRepairFile и xlExtractData, которые соответственно означают обычное открытие книги, попытку восстановления книги и попытку восстановления данных в книге. По умолчанию — кслнормаллоад.
Пример 1. Откройте книгу Excel
Sub OpenExcelFile()
    
    Dim strFileName As String
    ' 定义文件名称
    strFileName = "D:VBAEmployee.xlsx"
    
    ' 打开工作簿
    Workbooks.Open Filename:=strFileName
    
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Пример 2. Откройте книгу Excel по текущему пути.
Sub OpenExcelFile()

    Dim strFileName As String
    Dim strFilePath
    
    ' 定义文件名称
    strFileName = "Employee.xlsx"
    ' 获取当前路径
    strFilePath = ThisWorkbook.Path
    
    ' 打开工作簿
    Workbooks.Open Filename:=strFilePath & "" & strFileName
    
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2. Сохраните и закройте файл.

Когда вы открываете книгу Excel и управляете ее содержимым, а затем хотите сохранить и закрыть ее, вы можете использовать методы «Сохранить» и «Закрыть».

Пример. После открытия файла «Сотрудник.xlsx» по текущему пути после записи текущей даты в ячейку A1 на листе «Лист1» сохраните и закройте файл «Сотрудник.xlsx». Полный код выглядит следующим образом:
Sub WriteCurrentDate()
    
    ' 申明变量
    Dim strFileName As String
    Dim strFilePath
    Dim ws As Worksheet
    Dim wb As Workbook
    
    ' 定义文件名称
    strFileName = "Employee.xlsx"
    ' 获取当前路径
    strFilePath = ThisWorkbook.Path
    
    ' 打开工作簿
    Workbooks.Open Filename:=strFilePath & "" & strFileName
    
    ' 定义sheet1工作表对象以及当前打开的工作簿对象
    Set ws = ActiveWorkbook.Worksheets("Sheet1")
    Set wb = ActiveWorkbook
    
    ' A1单元格写入当前日期
    ws.Range("A1").Value = Date
    
    ' 保存并关闭文件
    wb.Save
    wb.Close
    
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28