我正在將具有46列作爲生產報告的12,000條記錄寫入Excel文件。充滿數據時不顯示工作表。快速設置使用Excel對象的數字格式
上一個StackOverflow信息教會了我如何使用對象數組將數值放入速度範圍中。我希望這也可以用於格式化值。
代碼剪斷:
objExcel.Calculation = XlCalculation.xlCalculationManual
objExcel.ScreenUpdating = False
dcel = objWS.Range(objWS.Cells(rowdatastart, 1), objWS.Cells(rowdataend, nProdReportCol.ProdReportColCount - 2))
dcel.Value = aobj
dcel.NumberFormat = bobj
objExcel.ScreenUpdating = True
objExcel.Calculation = XlCalculation.xlCalculationAutomatic
aobj和BOBJ是適合的範圍對象(,)陣列。 bobj包含顯示時間爲「12:23a」的字符串,如「h:mma/p」,以及顯示數字爲「53/25」的「0.00」。
「dcel.value = aobj」需要半秒。 「dcel.NumberFormat = bobj」需要38秒。
對於我錯過/誤解的任何建議?我寧願7秒鐘的報告(開始excel,寫,保存,關閉excel)不花45秒,因爲我希望數字/日期/時間出現在我選擇的位置。
不適用于格式。也許你可以創建範圍對象,以便所有需要特定'bobj'格式的單元格可以一次格式化;或者你可以使用條件格式來一次設置整個範圍。由於你的代碼正在工作,這可能是最好的[代碼審查](https://codereview.stackexchange.com/) –