All Forums
 Категория Visio
 Форум Вопросы и ответы
 Object variable or with block variable not set
Author Previous Topic Topic Next Topic  

bdfy

Belarus
267 Posts

Posted - 03/31/2009 :  16:11:01
полдня уже ищу ошибку в коде. минимальный код который вызывает ошибку указанную выше следующий
quote:
name_box = "box0_1"
Dim name_l, name_xls As String

Dim vsoMaster As Visio.Master
Set vs = ActivePage.Shapes(name_box).SpatialNeighbors(3, 0.2, 0)
N = vs.Count
If N > 0 Then
ActiveWindow.DeselectAll
For Each sh In vs
Set vsoMaster = sh.Master
Select Case vsoMaster
End Select
Next sh
End If

если 'On Error Resume Next добавить в код, то работает код отлично. замечаний нет. выскакивает она когда Sheet.258 какой то обрабатывается . фигуру такую на листе найти не могу. пока просто отсеял ( If Left(sh.NameU, 5) <> "Sheet" Then), но это ведь не выход :)) в чем ошибка ?

Tumanov

Russia
1198 Posts

Posted - 03/31/2009 :  17:18:29
Вполне возможно, что это не ошибка. Например, попался шейп, не образованный от мастера, а просто нарисованный. Свойство Master у такого шейпа будет давать ошибку.
Go to Top of Page

bdfy

Belarus
267 Posts

Posted - 03/31/2009 :  19:45:37
хорошо. и как это грамотно обойти ?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/01/2009 :  15:50:19
Вот по такой технологии
Dim sh As Visio.Shape
Set sh = ActivePage.Shapes(1)
On Error Resume Next
Set mas = sh.Master
If Not mas Is Nothing Then
    Debug.Print mas.Name
Else
    Debug.Print sh.NameID
End If
On Error GoTo 0

Перед нужным местом отключаете механизм вывода сообщение об ошибках On Error Resume Next (потом включаете On Error GoTo 0)
А в своем обработчике проверяете, вернулась ли правильная ссылка на Master.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)