Получение данных из 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
опустошать в конце каждого полного цикла? Вот что я пытаюсь сделать:
MyValues
содержит данные с даты 1 по 2- Все точки PI в
MyValues
должен быть очищен MyValues
содержит данные с даты 2 по 3
1 ответ
Что-то вроде:
Worksheets("Sheet6").Range("B1").Resize(UBound(myValues)+1,1).Value = _
Application.Transpose(myValues)