Я работаю над следующим макросом в Excel, который перебирает все рабочие листы в рабочей книге и сохраняет каждый в свой собственный файл .csv. Проблема в том, что мне нужно сохранить как .csv в кодировке UTF-8. Я прочитал, что кодировкой Excel по умолчанию для .csv является ANSI, которая не будет работать для меня, потому что у меня есть некоторые файлы со специальными символами в них. Кто-нибудь знает, как я могу пойти по этому поводу?

Макрос:

Public Sub ExportSheetsToCSV()

Dim wsExport As Worksheet
Dim wbkExport As Workbook

For Each wsExport In Worksheets
wsExport.Select
nm = wsExport.Name
If Not IsActiveSheetEmpty() Then
    ActiveSheet.SaveAs fileName:="H:\CSV_Split_Exports\" & nm, FileFormat:=xlCSV
    Application.DisplayAlerts = True
End If

Next wsExport

End Sub

1 ответ1

0

"Простой способ" - сохранить как "текст Unicode". Это будет UTF-16, табуляции формате, а не запятые.

В большинстве процессов импорта программного обеспечения вы можете указывать разделитель при импорте данных, но если ваше конкретное приложение этого не делает, вы можете постобработать файл с помощью команды find+replace, чтобы изменить вкладку на запятую.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .