2014-08-28 106 views
0

我正在使用宏为我的xlsm文件中的每个工作表创建csv文件。使用unicode数据为Excel工作表制作csv的Excel宏

这是unicode数据,大约有50000行,有些列有日期。

通过逐个单元格并将该数据附加到csv文件是 需要很长时间。

你可以请我建议一些方法来创建具有大数据的unicode工作表的csv文件?

+0

在宏,使用与UTF-8编码文件流(用于写入CSV文件)中保留Unicode字符的工作,但CSV文件的创建是对于像50000行的大数据非常缓慢,10列。 – user3272605 2014-08-28 13:17:09

回答

0

Excel能够保存为已经构建的csv文件:不需要您明确地对其进行编码。这将比你在VBA中编写的任何代码都快。

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

+0

对于csv的保存不适用于excel工作表具有诸如chiunese字符的unicode数据。这些字符将被随机字符替换,如“????”。所以我用一个宏手动添加数据到csv文件 – user3272605 2014-08-28 13:15:18

+0

你可以强制保存为UTF-8。 *应该*起作用。 – Bathsheba 2014-08-28 13:20:09

+0

'.SaveAs'有一个'TextCodepage'参数,但不幸的是,它被忽略,系统语言环境代码页被使用:[SaveAs link](http://msdn.microsoft.com/zh-cn/library/office /ff841185(v=office.15).aspx)。 – 2014-08-29 20:47:45

0

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

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