bblfns 发表于 2007-3-23 20:58:00

[求助]有关选择集的一个Automation错误

<p>各位大侠:</p><p>下面是小弟运行的一段程序,在一台机子上调试之标红的语句时跳出了一个错误:</p><p>“运行时错误'2147418113(8000ffff)'</p><p>自动化(Automation)错误”</p><p>在别的机子上都没有这个问题。请问一下这怎么回事,怎么解决?是不是cad安装时少了什么东西?</p><p>多谢了</p><p>Public SelSet As AcadSelectionSet<br/>Public EntObj As AcadLine<br/>Dim TextObj As AcadText<br/>Dim pnt As AcadPoint<br/>Dim MidPoint(0 To 2) As Double</p><p></p><p>Private Sub apply_Click()</p><p>Dim XDType(0 To 2) As Integer<br/>Dim XData(0 To 2) As Variant<br/>XDType(0) = 1001<br/>XData(0) = "waibu"<br/>XDType(1) = 1000<br/>XData(1) = TextBox1<br/>XDType(2) = 1040<br/>XData(2) = TextBox2</p><p><font color="#ee3d11">For Each EntObj In SelSet</font></p><p><font color="#ee3d11">。。。</font></p>

wyj7485 发表于 2007-3-26 17:47:00

<p><strong>有关选择集的使用:</strong></p><p><strong>判断是否有同名</strong></p><p><strong>是否有对象</strong></p><p><strong>使用循环时是否超出其下界</strong></p><p><strong>等等,如使用不当均会报错</strong></p>

雪山飞狐_lzh 发表于 2007-3-26 21:19:00

创建选择集的代码呢?

bblfns 发表于 2007-3-26 21:45:00

<p>Set ExtDline.SelSet = ThisDrawing.SelectionSets.Add("select34")<br/>ExtDline.SelSet.SelectOnScreen</p><p></p><p>以上是建选择集的代码,</p><p>没有重名选择集。</p><p>在别的机子上运行时都没有问题,就在那台机子上,选上对象后再下一步就出了这样的问题。</p><p>多谢关注。</p>

wyj7485 发表于 2007-3-27 08:28:00

<p>改为呢:</p><p>Set ExtDline= ThisDrawing.SelectionSets.Add("select34")<br/>ExtDline.SelectOnScreen</p>

xiaoye 发表于 2007-3-27 14:12:00

<p>从给出的这部分代码是在难看出有什么错误,原因不在于此吧。</p><p>建立选择集时还有另一种方法:</p><p>&nbsp;&nbsp;&nbsp; Public ExtDline As AcadSelectionSet</p><p>&nbsp;&nbsp;&nbsp; If Not IsNull(ThisDrawing.SelectionSets.Item("select34")) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ExtDline = ThisDrawing.SelectionSets.Item("select34")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExtDline.Delete<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Set ExtDline = ThisDrawing.SelectionSets.Add("select34")</p><p>也有可能是你选择集中的元素类型和你将要赋值的变量类型不一致。</p>

bblfns 发表于 2007-3-27 22:35:00

<p>再次感谢关注,</p><p>ExtDline是一个form,所以<font face="Verdana" color="#da2549"><strong>wyj7485兄</strong><font color="#000000">说的问题只是在什么位置写这些代码的问题,如果在ExtDline的模块下面,代码可以写成那样。</font></font></p><p><font face="Verdana" color="#61b713"><strong>xiaoye兄,</strong><font color="#000000">这种方法我去试试。</font></font></p><p><font face="Verdana">多谢了,</font></p><p><font face="Verdana">不过我还是觉得是不是那个CAD安装时少了什么东西,因为在别处都没有这个问题啊?有哪位也碰上过这样的问题呢?</font></p><p><font face="Verdana"></font></p>

mufeng 发表于 2007-7-25 09:51:00

<p>If Not IsNull(ThisDrawing.SelectionSets.Item("select34")) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set ExtDline = ThisDrawing.SelectionSets.Item("select34")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExtDline.Delete<br/>&nbsp;End If<br/></p><p>在这基础上加一条过滤错误语句:on error resume next</p><p>要不会出错</p>
页: [1]
查看完整版本: [求助]有关选择集的一个Automation错误