Vba <;对象变量或未设置块变量>;运行时错误91

Vba <;对象变量或未设置块变量>;运行时错误91,vba,excel,visio,Vba,Excel,Visio,我正在创建一个宏,该宏可以从excel电子表格中自动创建visio图表,该图表代表excel电子表格中某一行的连接。我得到这个错误,我无法找到原因,要知道我在vba方面相当缺乏经验。当我试图在已经放置的两个对象之间放置连接时,问题就出现了。为了再次调用这些对象,我尝试使用它们的唯一id,但由于某些原因,我无法越过第一个障碍 如果您能提供任何帮助,我很高兴,请原谅这些乱七八糟的代码 While Current_Row < Last_Row While current_obj

我正在创建一个宏,该宏可以从excel电子表格中自动创建visio图表,该图表代表excel电子表格中某一行的连接。我得到这个错误,我无法找到原因,要知道我在vba方面相当缺乏经验。当我试图在已经放置的两个对象之间放置连接时,问题就出现了。为了再次调用这些对象,我尝试使用它们的唯一id,但由于某些原因,我无法越过第一个障碍

如果您能提供任何帮助,我很高兴,请原谅这些乱七八糟的代码

    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
当前行<最后一行时


当当前_对象时,您似乎忘记正确设置
ShpObj2
,然后在条件语句中使用它

试着换一条线

ShpObj2=AppVisio.ActivePage.Shapes(对象)

与:


Set ShpObj2=AppVisio.ActivePage.Shapes(object)

看起来您忘记正确设置ShpObj2,然后在条件语句中使用它

试着换一条线

ShpObj2=AppVisio.ActivePage.Shapes(对象)

与:


Set-ShpObj2=AppVisio.ActivePage.Shapes(object)

Set-ShpObj2在另一个模块中设置为公共变量,虽然第一个ShpObj Set-ShpObj=AppVisio.ActivePage.Shapes(object)确定时出现问题,但问题并未出现,那么出现了什么问题?有例外吗?当整个宏运行到上面的代码时,出现了错误91,我不明白为什么,我正在使用的所有变量都在我的主模块中公开声明,错误出现在上面代码的第4行,我很确定如果它能够通过,它将再次出现在第8行。上面的代码应该做的是获取电子表格的当前行并搜索工作表上的所有形状,直到它在形状中找到文本=它正在查看的单元格中的文本,然后再次执行相同的操作,但如果要查看其他模块,则在中查找文本,如果问题出现在他们身上,我也在这个论坛上发布了一个示例电子表格,连接是连接器的标签,两组名称是要连接的对象集ShpObj2在另一个模块中设置为公共变量,虽然第一个ShpObj集合ShpObj=AppVisio.ActivePage.Shapes(object)出现了问题,但问题并没有出现,那么出现了什么问题呢?有例外吗?当整个宏运行到上面的代码时,出现了错误91,我不明白为什么,我正在使用的所有变量都在我的主模块中公开声明,错误出现在上面代码的第4行,我很确定如果它能够通过,它将再次出现在第8行。上面的代码应该做的是获取电子表格的当前行并搜索工作表上的所有形状,直到它在形状中找到文本=它正在查看的单元格中的文本,然后再次执行相同的操作,但如果要查看其他模块,则在中查找文本,如果问题出现在他们身上,在这个论坛上,我在这里发布的文件中也包含了一个示例电子表格,连接是连接器的标签,两组名称是要连接的对象