![使用 VBA 将 Excel 工作表保存为 UTF-8 格式的 CSV](https://linux22.com/image/1536617/%E4%BD%BF%E7%94%A8%20VBA%20%E5%B0%86%20Excel%20%E5%B7%A5%E4%BD%9C%E8%A1%A8%E4%BF%9D%E5%AD%98%E4%B8%BA%20UTF-8%20%E6%A0%BC%E5%BC%8F%E7%9A%84%20CSV.png)
我正在 Excel 中使用以下宏,它循环遍历工作簿中的所有工作表并将每个工作表保存到其自己的 .csv 文件中。问题是我需要将其保存为使用 UTF-8 编码的 .csv。我读到 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
“简单方法”是保存为“Unicode 文本”。这将是 UTF-16,标签分隔格式,而不是逗号分隔。
大多数软件导入过程允许您在导入数据时指定分隔符,但是如果您的特定应用程序不允许,则可以使用查找+替换对文件进行后期处理,将制表符更改为逗号。