Vba: як зберегти аркуші як файли csv (з прикладом)


Ви можете використовувати такий синтаксис у VBA, щоб зберегти кожен аркуш книги у файл CSV:

 Sub SaveCSV()

Dim Ws As Worksheet
Dim SaveDir As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat

'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "

'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
    Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True

End Sub

Цей конкретний макрос збереже кожен аркуш поточної активної книги у файл CSV.

Файли CSV буде збережено в шляху, указаному в змінній SaveDir .

Примітка . Рядок Application.DisplayAlerts=False повідомляє VBA тимчасово вимкнути всі сповіщення про відображення в Excel під час збереження файлів.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: збереження аркушів як файлів CSV за допомогою VBA

Припустимо, у нас є книга Excel з двома аркушами.

Перший аркуш називається player_stats і містить статистику про різних баскетболістів:

Другий аркуш називається team_info і містить інформацію про різні баскетбольні команди:

Припустімо, ми хочемо зберегти кожен із цих аркушів як окремі файли CSV на робочому столі нашого комп’ютера.

Для цього ми можемо створити такий макрос:

 Sub SaveCSV()

Dim Ws As Worksheet
Dim SaveDir As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat

'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "

'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
    Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True

End Sub

Після виконання цього макросу кожен аркуш буде збережено як файл CSV на нашому робочому столі.

Якщо я перейду на робочий стіл свого комп’ютера, я побачу кожен із цих окремих файлів CSV із назвами файлів, які відповідають назвам аркушів:

Якщо я відкрию файл CSV player_stats за допомогою Блокнота, я побачу, що значення у файлі Excel були збережені як значення, розділені комами:

Зверніть увагу, що в цьому прикладі ми змогли зберегти два аркуші в нашій робочій книзі як окремі файли CSV, але цей самий макрос працюватиме з будь-якою кількістю аркушів.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: Як підрахувати кількість аркушів у робочій книзі
VBA: як отримати дані з іншої книги
VBA: Як додати нові аркуші

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *