Получение данных из PI DataLink с использованием VBA

Я извлекаю огромное количество данных с PI Server, используя VBA. Я использую следующий код:

**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. Все точки PI в MyValues должен быть очищен
  3. MyValues содержит данные с даты 2 по 3

1 ответ

Что-то вроде:

Worksheets("Sheet6").Range("B1").Resize(UBound(myValues)+1,1).Value = _
                                       Application.Transpose(myValues)
Другие вопросы по тегам