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