Мы недавно мигрировали с Visio 2010 на Visio 2013, и наш макрос для обновления OPC теперь не может использовать «недопустимый параметр».Пожалуйста, смотрите прикрепленное изображение.Я знаю, что эта строка находит, если результат целевого OPC не равен Sheet.0, и если если нет, то чтобы SecondPageName равнялся имени целевого листа OPC.
Может кто-нибудь передать, чтонедопустимый параметр может быть?
Sub FixOffPageReferences ()
Dim OPCDShapeID в виде строки Dim OPCDPageName в виде строки Dim pag2 в виде Visio.Page
For Each pag In Application.ActiveDocument.Pages
'Only the foreground pages
If pag.Type = visTypeForeground Then
'Loop through all shapes in page
For Each shp In pag.Shapes
'Make sure shape exists (Script crashes if it tries to read data that doesn't exist)
If shp.CellExists("Prop.Row_1", 0) Then
deviceType = shp.Cells("Prop.Row_1.Label").ResultStr(visNoCast)
If deviceType = "DESTINATION SHEET" Then
OPCShapeID = shp.Cells("User.OPCShapeID").ResultStr(visNoCast)
OPCDShapeID = shp.Cells("User.OPCDShapeID").ResultStr(visNoCast)
'make sure the OPC is connected to a destination shape on another sheet
If OPCDShapeID <> "" Then
For Each pag2 In Application.ActiveDocument.Pages
If pag2.Type = visTypeForeground Then
If pag2.Shapes.ItemFromUniqueID(OPCDShapeID).Name <> "Sheet.0" Then
SecondPageName = pag2.Name
pag2.Shapes(OPCDShapeID).Cells("User.OPCDPageID").Formula = Chr(34) & pag.PageSheet.UniqueID(visGetOrMakeGUID) & Chr(34)
Exit For
End If
End If
Next
End If
shp.CellsSRC(visSectionHyperlink, 0, visHLinkSubAddress).FormulaU = Chr(34) & SecondPageName & Chr(34)
On Error Resume Next
shp.Cells("Prop.Row_1").FormulaU = "=Guard(Hyperlink.OffPageConnector.SubAddress)"
On Error GoTo 0
End If
End If
Next
End If
Next
MsgBox "All Sheet numbers on off-sheet references have been updated."
End Sub Спасибо!
код