2013-02-27 158 views
0

我正在创建一个宏,它可以从Excel电子表格中自动创建一个Visio图表,其中该图表表示Excel电子表格中一行中的连接。我得到这个错误,我找不到原因,请注意我在vba方面经验不足。当我尝试在已放置的两个对象之间放置连接时,出现问题。再次调用这些对象我试图使用他们的唯一身份证,但由于某种原因,我无法通过第一个障碍。<对象变量或块变量未设置>运行时错误91

如果你可以提供帮助,我会很高兴的任何见解,原谅凌乱的代码!

While Current_Row < Last_Row 

    While current_object <= counter 
     object = "Ellipse." & current_object 


     Set ShpObj = AppVisio.ActivePage.Shapes(object) 

     If ShpObj.Text = Worksheets("TempSheet").Cells(Current_Row, COLUMN2).Value Then 

      While current_get <= counter 
       object = "Ellipse." & current_get 


       ShpObj2 = AppVisio.ActivePage.Shapes(object) 

       If ShpObj2.Text = Worksheets("TempSheet").Cells(Current_Row, COLUMN2).Value Then 

        ShpObj2.AutoConnect ShpObj, visioAutoconnecDirRight, connector '(setting the color and label) 

        Set ShpObj2 = Nothing 
       End If 
       current_get = current_get + 1 
      Wend 
     End If 

    current_object = current_object + 1 
    current_get = 1 


    Set ShpObj = Nothing 
    Wend 

因此多数民众赞成块这就是导致问题,如果你想看到的其余模块,你可以在一个论坛的帖子在这里http://visguy.com/vgforum/index.php?topic=4633.0

回答

3

它看起来像你忘找到它正确设置ShpObj2,然后你在条件语句中使用它。

尝试用替换线

ShpObj2 = AppVisio.ActivePage.Shapes(object)

Set ShpObj2 = AppVisio.ActivePage.Shapes(object)

+0

集ShpObj2被设置为另一模块中的公共变量,那并不出现的问题有,虽然它与第一个出现ShpObj Set ShpObj = AppVisio.ActivePage.Shapes(object) – Ben 2013-02-28 09:24:00

+0

好的,那么出现了什么问题?是否有例外? – Sam 2013-02-28 12:17:57

+0

当整个宏运行它到上面的代码和error91发生,我无法弄清楚为什么,我使用的所有变量已在我的主要模块中公开声明,错误出现在上面的代码第4行和IM漂亮如果它能够通过,它肯定会在第8行再次出现。上面的代码应该做的是获取电子表格的当前行并搜索表单上的所有形状,直到找到shape中的文本=它正在查看的单元格中的文本,然后再次执行相同操作但在 – Ben 2013-02-28 12:35:46

相关问题