【问题标题】:Excel macro to make a csv for worksheet with unicode dataExcel 宏使用 unicode 数据为工作表制作 csv
【发布时间】:2014-10-22 07:34:58
【问题描述】:

我正在使用宏为我的 xlsm 文件中的每个工作表制作一个 csv 文件。

这是大约 50000 行的 unicode 数据,其中一些列包含日期。

通过逐个单元格浏览并将该数据附加到 csv 文件是 花费很多时间。

您能否建议我一些方法来为包含大数据的 unicode 工作表创建 csv 文件?

【问题讨论】:

  • 在宏中,使用 UTF-8 编码的文件流(用于写入 csv 文件)可以保留 unicode 字符,但是对于像这样的大数据,csv 文件的创建速度非常慢50000 行,10 列。

标签: vba excel csv unicode


【解决方案1】:

Excel 能够保存为已内置的 csv 文件:您无需显式编码。这将比您在 VBA 中编写的任何代码都快。

了解如何使用宏记录器(可在开发人员选项卡上获得)并将文件另存为 csv 的最简单方法。

【讨论】:

  • 保存为 csv 的情况下,Excel 工作表中的 unicode 数据(如中文字符)不起作用。这些字符将被随机字符替换,例如“??????”。所以我使用宏手动将数据添加到csv文件中
  • 您可以强制保存为 UTF-8。这应该起作用。
  • .SaveAs 有一个TextCodepage 参数,但不幸的是,它被忽略了,使用了系统区域设置代码页:SaveAs link。
【解决方案2】:

只需将值放入数组中,然后将其粘贴到工作表中。

Set TheRange = Range(Cells(1, 1), Cells(50000, 100))'Set worksheet range
ReDim TempArray(1 To 50000, 1 To 100)
' Fill the temporary array here
->some code to fill our "TempArray"<-
' Copy array to worksheet
TheRange.Value = TempArray

【讨论】:

    猜你喜欢
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2016-08-30
    相关资源
    最近更新 更多