Visio GlueTo Method Возвращает «Недопустимый целевой объект для этого действия» - PullRequest
0 голосов
/ 29 ноября 2010

Я пытаюсь приклеить форму к другой в Visio, используя GlueTo

Вот код

        Set trgObj = Cell.shape.Document.Masters("Trigger").Shapes(1)

        Dim x As shape            
        Set x = ActivePage.Drop(trgObj, flowConnector.CellsU("PinX"), flowConnector.CellsU("PinY"))

        Dim vsoCell1 As Visio.Cell
        Dim vsoCell2 As Visio.Cell
        Set vsoCell1 = x.CellsU("PinX")
        Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(flowConnector.ID).CellsSRC(7, 1, 0)
        vsoCell1.GlueTo vsoCell2

        'The following code I obtained through running a macro in visio
        'Dim vsoCell1 As Visio.Cell
        'Dim vsoCell2 As Visio.Cell

        'The following is the equivalent to x
        'Set vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(51).CellsU("PinX")

        'The following is the equivalent to flowConnector
        'Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(12).CellsSRC(7, 1, 0)
        'vsoCell1.GlueTo vsoCell2

возвращает «Недопустимый целевой объект для этого действия», но странно то, что код, который я использую, получен при записи макроса. Я не могу понять, почему код работает, когда я записываю его в макрос, но когда я его использую, это не так. Если кто-нибудь может предложить какую-либо помощь, я был бы очень признателен.

1 Ответ

0 голосов
/ 01 декабря 2010

Я выяснил проблему вместо того, чтобы использовать код, который был предоставлен макросом

Dim vsoCell1 As Visio.Cell
Dim vsoCell2 As Visio.Cell
Set vsoCell1 = x.CellsU("PinX")
Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(flowConnector.ID).CellsSRC(7, 1, 0)

, а использовать следующее

Dim vsoCell1 As Visio.Cell
Dim vsoCell2 As Visio.Cell
Set vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(x.ID).CellsSRC(visSectionConnectionPts, 0, 0)
Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(flowConnector.ID).CellsSRC(visSectionConnectionPts, 1, 0)

где

visSectionConnectionPts, 0, 0)

0, 0 ссылается на ячейку 0 в точках подключения или ячейка x

и

visSectionConnectionPts, 1, 0)

ссылается на ячейку 1 или ячейку y в точках подключения

...