请问,在一个VBA工程中再编写怎样的程序代码,能够终止此工程的运行?
请问,在一个VBA工程中再编写怎样的程序代码,能够实现以下功能:当此工程运行时(如正在提示用户在AutoCAD界面中选择图形),当用户按下ESC键准备终止此工程的运行时,程序执行一段代码,以执行删除选择集(否则,下次再运行此工程时将出现错误)等操作,最后结束工程的运行,返回AutoCAD界面? Sub Test()<BR>On Error Resume Next<BR>ThisDrawing.Utility.GetPoint<BR>If Err Then GoTo ErrClear<BR>'此处执行你的后续代码<BR>ErrClear:<BR>'此处执行删除选择集等操作<BR>End Sub<BR> 非常感谢lzh741206老师的解答!
修改代码大致如下:
Sub Test()<BR> On Error Resume Next<BR> ThisDrawing.Utility.GetPoint
If Err Then GoTo ErrClear<BR> '此处执行你的后续代码 ...<BR> <BR> ErrClear:<BR> SelSet.Clear<BR> SelSet.Delect
End Sub
<BR> 但上述代码运行时产生如下错误:
1.当正在提示用户在AutoCAD界面中选择图形时,若用户没有选中程序设定的、必须选择的图形,而且用户又不愿再选择图形、按下ESC键准备终止此工程的运行时,会出现一个程序设定的提示窗口,提示用户没有选中要求的图形而要求重新选择,请问,此时如何实现在用户按下ESC键是能够终止此工程的运行而不是出现提示窗口?
2.若运行中出现错误,如提示用户确定插入点时而用户直接按回车键跳过,则当下次再运行此工程时,会在创建选择集的语句(Set SelSet = ThisDrawing.SelectionSets.Add("图块选择集"))出现错误,此时,若把此语句中的选择集的名称更改一下如改为“图块选择集2”则运行正常。难道上一次运行时语句“SelSet.Clear”及“SelSet.Delect”没有被执行?
请问上述问题如何解决? <BR> 我只是用GetPoint说明如何做,应该用
Sub Test()<BR>On Error Resume Next<BR>Dim SelSet As AcadSelectionSet<BR>Set SelSet = ThisDrawing.SelectionSets.Add("图块选择集")<BR>If Err Then Set SelSet = ThisDrawing.SelectionSets("图块选择集"): SelSet.Clear<BR>SelSet.SelectOnScreen<BR>If SelSet.Count = 0 Then GoTo ErrClear<BR>'MsgBox SelSet.Count<BR>'此处执行你的后续代码<BR>ErrClear:
SelSet.Delect<BR>End Sub<BR><BR> 非常感谢lzh741206老师耐心和细致的解答!
页:
[1]