VBA Excel сохранить txt как txt UTF-8

#excel #vba

Вопрос:

У меня работает весь мой код, но это сохраняет текст в ANSI, хотел бы сохранить текст в формате UTF-8, не могли бы вы мне помочь с этим?

 Option Explicit

Sub SaveWorkSheetAsCSV()
    
    ActiveSheet.Buttons.Delete
    
    Dim FolderPath As String
    FolderPath = "C:Users" amp; Environ("USERNAME") amp; "Test"
    
    Dim FileName As String: FileName = Format(Now, "yyyymmdd-hh.mm ") amp; " Test"
    
    Dim sws As Worksheet: Set sws = ThisWorkbook.Worksheets(4)
    
    Application.ScreenUpdating = False
    
    sws.Copy
    Dim dwb As Workbook: Set dwb = ActiveWorkbook
    
    Application.DisplayAlerts = False
    dwb.SaveAs FolderPath amp; "" amp; FileName amp; ".txt", xlCSV, Local:=True
    Application.DisplayAlerts = True
    dwb.Close SaveChanges:=False
    
    Application.ScreenUpdating = True
    
    ThisWorkbook.FollowHyperlink FolderPath

End Sub
 

Комментарии:

1. Проверьте документацию для рабочей книги. Сохраните, особенно аргумент FileFormat. docs.microsoft.com/en-us/office/vba/api/excel.xlfileformat

2. Спасибо, я уже проверил это, к сожалению, ничего для txt как UTF-8.

Ответ №1:

У вас есть пара вариантов, чтобы изменить свой SaveAs

Попробуйте любой из этих»

 'My best guess that will work
dwb.SaveAs FolderPath amp; "" amp; FileName, xlCurrentPlatformText, Local:=True

'Alternative text
dwb.SaveAs FolderPath amp; "" amp; FileName, xlUnicodeText, Local:=True

'CSV approach
dwb.SaveAs FolderPath amp; "" amp; FileName, xlCSVUTF8, Local:=True
 

Комментарии:

1. Спасибо, я разберусь с этим!

2. Я должен проверить это еще раз, xlCSVUTF8, возвращается к ошибке.

3. Это будет связано с файлом. Не код. Довольно стандартная процедура.

4. Я собираюсь проверить это сегодня!

5. Кажется, что xlCSVUTF8 работает, но он сохраняется как UTF-8 с BOM, есть ли возможность сохранить это без части спецификации?