【问题标题】:Convert Excel data to CSV with UTF-8 using VBA使用 VBA 将 Excel 数据转换为带有 UTF-8 的 CSV
【发布时间】:2017-11-16 00:39:28
【问题描述】:

我在工作表上有数据 - 基本上是足球桌。
我想将工作表导出为 UTF8 编码的 csv 文件。
我在另一张纸上有相同的代码 - 并且确实正确编码为 UTF8。
(我去 Notepad++ 并检查编码 - 它总是 ANSI)好的是 UTF8。

为什么一个宏可以正常工作,而另一个不能?

我在工作表上的代码是:

Private Sub btHTMLUK_Click()
    Application.DisplayAlerts = False

    On Error Resume Next
    Kill "C:\news\work\eurofootballtables.csv"
    On Error GoTo 0

    Set NewBook = Workbooks.Add
    ThisWorkbook.Worksheets("eurofootballtables").Range("A1:I130").Copy
    NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues)
    NewBook.SaveAs Filename:="C:\News\work\eurofootballtables.csv",FileFormat _
      :=xlCSVMSDOS, CreateBackup:=False

    'even tried this:
    ActiveWorkbook.WebOptions.Encoding = msoEncodingUTF8

    Workbooks("eurofootballtables.csv").Close
End Sub

【问题讨论】:

  • 不确定它是否相关,但您肯定想为 NewBook 而不是 activeworkbook 更改 weboptions.encoding 并且您希望在保存之前而不是之后进行。
  • I go to Notepad++ and check encoding - 对于前 128 个代码点,UTF-8 与 ASCII 无法区分。如果你的文件只包含这些,Notepad++ 将无法知道它是 ASCII 还是 UTF-8。

标签: excel vba csv utf-8


【解决方案1】:

将文件格式更改为 xlCSVUTF8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 2021-02-11
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多