0

VBA を使用して PI Server から大量のデータを取得しています。次のコードを使用しています。

**Dim myValues As PIValues

Set myValues = PIMath.GetInterpolatedValues_Point(inputPIPoint,
    PIMath.StringToPITimeFormat(StartDate),
    PIMath.StringToPITimeFormat(NextDate), "10s")**

MyValues に保存されているすべての値をワークシートの列にコピーする最も速い方法は何ですか? 私はForループを使用しています:

For k = 1 To myValues.Count

Worksheets("Sheet6").Cells(k, 2).value = myValues(k)

しかし、複数の PI タグを使用し、時間間隔を 5 秒に変更すると、プロセスが非常に遅くなります。

myValuesまた、すべての完全なループの最後に空に設定するにはどうすればよいですか? これは私がやろうとしていることです:

  1. MyValuesDate 1st から 2nd までのデータを含む
  2. 内のすべての PI ポイントをMyValuesクリアする必要があります
  3. MyValues2日目から3日目までのデータを含む
4

1 に答える 1

0

何かのようなもの:

Worksheets("Sheet6").Range("B1").Resize(UBound(myValues)+1,1).Value = _
                                       Application.Transpose(myValues)
于 2016-08-26T23:40:39.777 に答える