Макрос для обновления Visio OPCDPageID - PullRequest
0 голосов
/ 05 октября 2018

Мы недавно мигрировали с 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 Спасибо!

код

...