Excelと.Netとのinteropが非常に遅いことはよく知られているようです。私は一度にワークシートオブジェクトに値の配列をコピーする機能を認識してんだけど、私のストップウォッチに応じてタイプの一つでもコマンド(VB.Net内側):より速いExcel interopメソッドが必要
WS.Range(--range string here--).Value = array
...を取ります0.3秒以上!これは、私のルーチンが各ワークシートに数十の配列を書き込んでおり、ワークブックごとにいくつかのワークシートがあり、おそらくいくつかのワークブックを繰り返すからです。
一度に不連続な非長方形のセルグループを書き込む方法があった場合、1回の書き込みコマンドでWS全体を実行できます。しかし、私はそれを行う方法があるとは思わない "元の間の"セルのための元の値を保持します。これらのワークブックはあらかじめフォーマットされているので、特定のセルをそのまま残しておく必要があります。
私はこれをスピードアップするために何かできますか?
最後に計算をオフにしてみましたか?すべてを再計算することを忘れないでください。また、VBAからやってみてください - まだ遅い場合は.Netは責任がありません。 – Ben
ありがとう、実際には大きな違いがありました。私はこの習慣を知っていましたが、計算がそのヒットであるとは思わなかった(これらのワークシートのために)ちょうどボトルネックは.Net-Com interopだったと仮定しました。コメントに答えを与える方法がわからないので、私は自分自身を投稿します。 – Tekito
あなたはまた、回答を投稿するようにベンに頼むことができますので、それを受け入れることができます:) – user850010