下面的VBA小程序在IDE环境下可以正常运行, 可用vla-runmacro调用时,不能正常运行, 不知道是什么原因. 1. VBA小程序 内容: 连续指定圆心, 画半径5的圆, 画错时输入u删除, 按回车健中止程序. '文件名设定为 uuu.dvb, 内容如下 Option Explicit Public Sub UUU() Dim circleObj As AcadCircle Dim centerPoint(0 To 2) As Double Dim radius As Double Dim keywordList As String Dim inputString As String Dim i As Integer Dim ifloop As Integer Dim returnPnt As Variant keywordList = "Undo" radius = 5# ifloop = 0 i = 0 Do ThisDrawing.StartUndoMark MARKUNDO: On Error GoTo myerror ThisDrawing.Utility.InitializeUserInput 128, keywordList returnPnt = ThisDrawing.Utility.GetPoint(, "圆心:") centerPoint(0) = returnPnt(0) centerPoint(1) = returnPnt(1) centerPoint(2) = returnPnt(2) Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius) ThisDrawing.EndUndoMark Loop While ifloop = 0 myerror: If Err Then Err.Clear inputString = ThisDrawing.Utility.GetInput Select Case inputString Case "Undo" ThisDrawing.EndUndoMark ThisDrawing.SendCommand "_Undo 2 " ThisDrawing.StartUndoMark Resume MARKUNDO Case "" Exit Sub Case Else MsgBox "无效关键字:" & inputString, vbOKOnly, "Input keyword" ThisDrawing.Utility.InitializeUserInput 128, keywordList i = i + 1 If i <= 1 Then Resume Else ThisDrawing.EndUndoMark Exit Sub End If End Select End If End Sub 2. 用vla-runmacro调用上面的VBA宏(我把上面的VBA文件uuu.dvb定义在硬盘的C的根目录下) (vl-load-com) (vla-runmacro (vlax-get-acad-object) "c:\\uuu.dvb!uuu") 运行时,可以正常画圆, 但当画错要修改时, 输入u, 就出错. 错误总是与 ThisDrawing.SendCommand "_Undo 2 " 语句有关, 不知道什么原因, 恳请指教. 下面的附加文件为 uuu.dvb |