请教VB,实时变量或with变量未设置
请教,VB编写的,出现错误为实时错误“91”,(实时变量或with变量未设置)。代码如下:Dim AcadApp As AcadApplication
Dim AcadDocs As AcadDocuments
Dim AcadDoc As AcadDocument
Dim MoSpace As AcadModelSpace
Public ztxzhtwzl1(0 To 2) As Double '块的插入位置1,m
Dim xzllblock As AcadBlockReference '声明块的变量
Sub huatu()
ztxzhtwzl1(0) = 15000: ztxzhtwzl1(1) = 5000: ztxzhtwzl1(2) = 0 ' 块的插入位置1,m
If ModuleMenj.lzzzzl = 5 Then‘(说明:ModuleMenj.lzzzzl 是一个其它模块中的已知变量)
Set xzllblock = AcadDoc.ModelSpace.InsertBlock(ztxzhtwzl1, "D:\portal crane\wheel\5wl.dwg", 1, 1, 1, 0)’将D:\portal crane\wheel\
ElseIf ModuleMenj.lzzzzl = 6 Then
Set xzllblock = AcadDoc.ModelSpace.InsertBlock(ztxzhtwzl1, "D:\portal crane\wheel\6wl.dwg", 1, 1, 1, 0)
ElseIf ModuleMenj.lzzzzl = 8 Then
Set xzllblock = AcadDoc.ModelSpace.InsertBlock(ztxzhtwzl1, "D:\portal crane\wheel\8wl.dwg", 1, 1, 1, 0)
End If
xzllblock.Explode‘(此句出现错误)
xzllblock.Update
ZoomAll
End Sub
请问是怎么回事?怎样修改?谢谢!
仔细看看你的代码,如果ModuleMenj.lzzzzl不等于5,也不等于6,也不等于8,程序会怎么样呢?会直接去执行xzllblock.Explode。可这时块参照还没有插入,xzllblock还是nothing啊,你这不是逼着寡妇生孩子吗? 关键点是
Set xzllblock =XX ,在本地窗口看,xlaablokc是否为Nothing,
要是为Nothing.就会出现实时变量或with变量未设置的情况出现.
在End if 前面加上
Else
Exit Sub
以避开出错的可能。
另外,你必须保证你的文件是存在的。
也可以写成:
Set xzllblock = AcadDoc.ModelSpace.InsertBlock(ztxzhtwzl1, "D:\portal crane\wheel\" & ModuleMenj.lzzzzl & "wl.dwg", 1, 1, 1, 0)
现加上出错判断,来简化程序。
写程序一定要能够针对各种可能的错误,不然给自己用都不及格,就不要说给别人了。
页:
[1]