8

30個のデータポイントを取得しているハードウェアがあります。これらの各ポイントは、シートが表示される前にいくつかの異なる場所でスプレッドシートに記録され、その後、別のプログラムがExcelスプレッドシートを引き継ぎます。他のプログラムが引き継ぐ前に、これらすべての値がスプレッドシートに書き込まれる必要があります。各セルを個別に書き込む場合、書き込みには約50ミリ秒かかります。これは、データ取得を完了するのに約1.25秒かかります。

一度にすべての値をスプレッドシートに書き込むことができれば、これらすべてのセルの書き込みが大幅に高速化されると思います。私が見ている問題は、データが連続していないのに、範囲が連続したセルを更新するのに非常にうまく機能することです。基本的に、これは私が書きたいものの例です:
A1 = 1
B23 = a
F8 = 2012/12/25
D53 = 4.1235
B2 = 5

「A1、B23、F8、D53、B2」の範囲を作成してから、値の配列を使用して値を設定してみました。object [5]、object [1,5]、object[5,1]の3つの異なる配列を試しました。これらはすべて、範囲内の指定されたセルの値を、すべての場合に作成した配列の最初のインデックスに設定します。

一度に1つずつセルを反復処理せずに、これらの30個のセルデータを更新する方法はありますか?

ありがとう、トム

4

3 に答える 3

3

アーキテクチャで許可されている場合、別のアイデアは、連続した長方形の範囲を持つ非表示のシートを使用し、そのパーツに名前を設定し、他のすべてのシートでこれらの名前を使用することです。

于 2012-06-13T03:04:42.963 に答える
0

値を変更するすべてのセルを含む長方形の範囲オブジェクトを定義します。その範囲のvalueプロパティから長方形のobject[,]配列を取得します。新しい値を配列に書き込み、変更された配列を使用して範囲の値を設定します。

于 2012-05-16T05:36:55.003 に答える
0

邪魔にならない場所、たとえば列Xにある連続したセルに値を書き込み、これらの更新されたセルを参照する数式をターゲットセルに含めることができます。したがって、セルA1の数式は "= X1"、セルB23"=X2"などになります。

于 2012-06-08T15:01:51.357 に答える