如何导出用“Unicode”编码的CSV文件

时间:2017-01-16 16:44:58

标签: excel vba csv

目前我使用VBA代码将范围数据导出到CSV文件:

Sub Fct_Export_CSV_Migration()   Dim Value As String   Dim size As Integer

  Value = ThisWorkbook.Path & "\Export_Migration" & Sheets(1).range("B20").Value & ".csv"   chemincsv = Value

  Worksheets("Correspondance Nv Arborescence").Select   Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$   Sep = ";"   size = Worksheets("Correspondance Nv Arborescence").range("B" & Rows.Count).End(xlUp).Row   Set Plage = ActiveSheet.range("A1:B" & size)

  Open chemincsv For Output As #1   For Each oL In Plage.Rows
    Tmp = ""
    For Each oC In oL.Cells
      Tmp = Tmp & CStr(oC.Text) & Sep
    Next


'take one less than length of the string number of characters from left, that would eliminate the trailing semicolon
    Tmp = Left(Tmp, Len(Tmp) - 1)

    Print #1, Tmp   Next   Close



  MsgBox "OK! Export to " & Value End Sub

现在,我想导出使用“ Unicode ”编码的CSV。我想我需要使用像SaveAs(xlUnicodeText)这样的VBA函数但是如何使用它?

THX

1 个答案:

答案 0 :(得分:1)

Unicode CSV不是Excel支持的文件格式之一,开箱即用。这意味着我们无法使用java -jar my.jar -Dcom.sun....方法。我们可以使用VBA解决这个限制的好消息。

我的方法使用file system object。这个非常方便的对象非常适合与文件系统交互。在使用之前,您需要添加一个参考:

  • 从VBA IDE中单击“工具”。
  • 点击引用...
  • 从列表中选择 Windows脚本宿主对象模型
  • 按OK。

enter image description here

代码:

SaveAs

此代码循环活动工作表中的每个已使用行。在每一行中,它遍历使用中的每一列。每个单元格的内容都会附加到您的文本文件中。在每行的末尾,添加换行符。

使用;只需用您的文件名替换 !!您的文件路径HERE.CSV !!