vba运行时错误';91';:对象变量或未设置块变量

vba运行时错误';91';:对象变量或未设置块变量,vba,macros,solidworks,Vba,Macros,Solidworks,我正在尝试运行一个Solid Works VBA宏,这应该是一个简单的解决方案,但是我不知道要更改什么 当我运行代码时,代码错误与 运行时错误'91' 对象变量或未设置块变量 当我单击debug时,它会显示这一行 Set Part=swap.ActiveDoc 我真的不知道去哪里看,做什么,这可能会导致,所以任何帮助都是非常感谢的。代码的基本部分如下所示(其中…表示缺少代码,与其他函数的结构相同)。完整代码可在此处查看: 非常感谢你 这意味着swap是Nothing,因为您实际上并没有这样做 以

我正在尝试运行一个Solid Works VBA宏,这应该是一个简单的解决方案,但是我不知道要更改什么

当我运行代码时,代码错误与

运行时错误'91'

对象变量或未设置块变量

当我单击debug时,它会显示这一行

Set Part=swap.ActiveDoc

我真的不知道去哪里看,做什么,这可能会导致,所以任何帮助都是非常感谢的。代码的基本部分如下所示(其中…表示缺少代码,与其他函数的结构相同)。完整代码可在此处查看:


非常感谢你

这意味着
swap
Nothing
,因为您实际上并没有这样做

以下是如何做到这一点:

 Set swApp = CreateObject("SldWorks.Application")

来源:直接取自这意味着
swap
Nothing
,因为您实际上并没有这样做

以下是如何做到这一点:

 Set swApp = CreateObject("SldWorks.Application")

来源:直接取自您正在将变量设置为

最好这样做(使用早期绑定):


这将允许您利用intellisense。

您正在将一个变量设置为

最好这样做(使用早期绑定):


这将允许您利用intellisense。

那么
Set swap=Application.SldWorks
do做什么?@GSerg根据我在internet上找到的内容,它返回当前运行的SolidWork实例。如果它没有运行,可能什么都没有。我试过你说的,但它仍然会弹出同样的错误,当我将鼠标悬停在调试行上时,它会说‘Part=nothing’。如何将部件设置为全局变量,每个函数都可以访问???@UndergradeEngineer23全局变量必须不惜一切代价避免。最好将其作为参数添加到subs@UndergradEngineer23它是否至少改变了它发生的行?然后它做了什么?@GSerg根据我在互联网上找到的,它返回当前运行的SolidWork实例。如果它没有运行,可能什么都没有。我试过你说的,但它仍然会弹出同样的错误,当我将鼠标悬停在调试行上时,它会说‘Part=nothing’。如何将部件设置为全局变量,每个函数都可以访问???@UndergradeEngineer23全局变量必须不惜一切代价避免。最好将其作为参数添加到subs@UndergradEngineer23它是否至少更改了发生的行?您是否编辑问题以包含我的答案,还是因为您第一次复制/粘贴错误?您是否编辑问题以包含我的答案,还是因为您第一次复制/粘贴错误?
Dim swApp as SldWorks.SldWorks
Set swApp = Application.SldWorks