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: Як додати нові аркуші