2014-08-28 320 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