У меня есть многочисленные макросы , которые, кажется, замедляются при взаимодействии с MS Project (например, чтение данных и их обработка) в MS Office 2016 .Это может быть мой основной код, механизмы для получения / хранения данных, но я не уверен и был бы признателен за ввод.
Я просто писал новый макрос для извлечения данных MSP в массив (хранящийся в памятиЯ думал, что это будет быстрее, но, похоже, изо всех сил пытался даже сделать это).Идея заключается в том, что доступ к памяти массива «должен» быть быстрее, чем переход из MS Excel в проект, на который ссылаются при необходимости извлечения / размещения данных?Возможно, это неверно.
Цель: удерживать 3 части каждого ресурса MS Project в массиве, в конечном итоге перебирать массив и помещать в Excel для дополнительного использования / обработки.
Первоначальное «чтение» никогда не завершалось (на 926 из моих 1300 ресурсов) до того, как я нарушил код для проверки.
Идеи ниже или для взаимодействия с MSP2016 Справочная библиотека?Кажется, он стал очень медленным по сравнению с работой в MS Excel.
Подпрограмма:
Private Sub cb_IMSResourceImport_Click()
Dim Prj As Project
Set Prj = GetObject(Me.cboMaintainToProject.Value)
Dim ResourceMatrix() As String
Prj.Application.WindowActivate Prj.Name
ReDim ResourceMatrix(Prj.Resources.Count, 2)
ActiveWorkbook.Sheets("Resource Table").Range("A2:C" & C`Str(ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count)).ClearContents
For i = 1 To UBound(ResourceMatrix)
ResourceMatrix(i - 1, 0) = Prj.Resources(i).ID
ResourceMatrix(i - 1, 1) = Prj.Resources(i).Name
ResourceMatrix(i - 1, 2) = Prj.Resources(i).Code
Next i
For i = 0 To UBound(ResourceMatrix)
ActiveWorkbook.Sheets("Resource Table").Cells(i + 1, 1).Value = ResourceMatrix(i, 0)
ActiveWorkbook.Sheets("Resource Table").Cells(i + 1, 2).Value = ResourceMatrix(i, 1)
ActiveWorkbook.Sheets("Resource Table").Cells(i + 1, 3).Value = ResourceMatrix(i, 2)
Next i
End Sub