実績レポートとしてExcelファイルに46列の12,000レコードを書いています。ワークシートは、データで満たされている間は表示されません。すぐに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"には0.5秒かかります。 "dcel.NumberFormat = bobj"は38秒かかります。
私が逃したことや誤解されたことに関する提案はありますか?私が選択したときに数字/日付/時刻が表示されるようにするために、私はむしろ7秒のレポート(Excelの開始、書き出し、保存、終了が優れています)を45秒かかるとは思いません。
フォーマットでは機能しません。おそらく、特定の 'bobj'フォーマットを必要とするすべてのセルを一度にフォーマットできるように、範囲オブジェクトを作成することができます。条件付き書式設定を使用して範囲全体を一度に設定することもできます。あなたのコードが動作しているので、これは[Code Review](https://codereview.stackexchange.com/)に最適かもしれません。 –