使用VBA从PI DataLink中提取数据

时间:2016-08-26 21:17:57

标签: vba excel-vba osisoft excel

我使用VBA从PI Server中提取大量数据。我使用以下代码:

**Dim myValues As PIValues

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

将MyValues中存储的所有值复制到工作表中的列的最快方法是什么?我正在使用For Loop:

For k = 1 To myValues.Count

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

但由于我使用多个PI标签并将时间间隔更改为5秒,因此这一过程极其缓慢。

另外,如何在每个完整循环结束时将myValues设置为空?这就是我想要做的事情:

  1. MyValues包含从第1天到第2天的数据
  2. 应清除MyValues中的所有PI分
  3. MyValues包含第2日至第3日的数据

1 个答案:

答案 0 :(得分:0)

类似的东西:

Worksheets("Sheet6").Range("B1").Resize(UBound(myValues)+1,1).Value = _
                                       Application.Transpose(myValues)