Пишется надстройка для Excel на VBA, работает с PI серверами. Проблема в том что при копировании одного PIModule с одного PISDK.Server на другой сервер, компилятор говорит что запрашиваемого модуля не существует, хотя в качестве SubModule он его копирует но в пределах этого же PI сервера. Для копирования использую метод Insert.
Вот как выглядит код обработчика (прим. все переменные уже были объявлены в другом модуле):
Private Sub CommandButton1_Click()
ServerImport = ComboBox1.Text
ServerExport = ComboBox2.Text
NameBaseImport = RefEdit1.Text
NameBaseExport = RefEdit3.Text
SubTreeName = RefEdit2.Text
Set SrvImport = PISDK.Servers.Item(ServerImport)
Set SrvExport = PISDK.Servers.Item(ServerExport)
SrvImport.Open
SrvExport.Open
Set ImportTree = SrvImport.PIModuleDB.PIModules.Item(NameBaseImport)
If NameBaseImport <> "" And NameBaseExport = "" Then
SrvImport.PIModuleDB.PIModules.Insert ImportTree
MsgBox "Удаление успешно", vbOKOnly
End If
If NameBaseExport <> "" Then
Set ExportTree = SrvExport.PIModuleDB.PIModules.Item(NameBaseExport)
ExportTree.PIModules.Insert ImportTree
End If
'Set SubPIModule = ImportTree.PIModules.Item(SubTreeName)
SrvImport.Close
SrvExport.Close
Set SubPIModule = Nothing
Set ImportTree = Nothing
Set ExportTree = Nothing
Set SrvImport = Nothing
Set SrvExport = Nothing
End Sub