ljpnb 发表于 2005-4-12 17:10:00

[求助]如何加while语句

下面程序如何加while语句,我想循环选择圆弧,直到回车结束程序。谢谢!         Sub arc_to_circle()
                       Dim cen As Variant
                       Dim radius As Single
                       Dim obj As AcadArc
                       Dim circleObj As AcadCircle
                       ThisDrawing.Utility.GetEntity obj, point, "选择圆弧:"
                       cen = obj.Center
                       radius = obj.radius
                       obj.Delete
                       Set circleObj = ThisDrawing.ModelSpace.AddCircle(cen, radius)
        End Sub

雪山飞狐_lzh 发表于 2005-4-12 21:16:00

Sub arc_to_circle()
        On Error GoTo ErrHandle
                       Dim cen As Variant
                       Dim radius As Single
                       Dim obj As AcadArc
                       Dim circleObj As AcadCircle
                       Do While True
                                                       ThisDrawing.Utility.GetEntity obj, Point, "选择圆弧:"
                                                       cen = obj.Center
                                                       radius = obj.radius
                                                       obj.Delete
                                                       Set circleObj = ThisDrawing.ModelSpace.AddCircle(cen, radius)
                       Loop
ErrHandle:
End Sub

ljpnb 发表于 2005-4-12 21:28:00

多谢版主指点,现在明白了!我刚开始接触VBA,所以有很多东西要学,还望你们多多指教!!

alin 发表于 2005-4-12 21:55:00

Sub arc_to_circle()
                       Dim Centre As Variant
                       Dim BasePnt As Variant
                       Dim Rad As Double
                       Dim ReturnObj As AcadArc
                       Dim circleObj As AcadCircle
                       Dim Descript As String
        Do
                       On Error Resume Next
                       ThisDrawing.Utility.InitializeUserInput 1, " "
                       ThisDrawing.Utility.GetEntity ReturnObj, BasePnt, "选择圆弧:"
                       If Err0 Then
                                       Descript = Err.Description
                                       Err.Clear
                                       If Descript = "类型不匹配" Then
                                                       MsgBox "不是圆弧!"
                                                       Else
                                                       If Descript =       "用户输入的是关键字" Then
                                                       Exit Do
                                                       Else
                                                               MsgBox "没有选择!"
                                                       End If
                                       End If
                       Else
                       Centre = ReturnObj.center
                       Rad = ReturnObj.radius
                       ReturnObj.Delete
                       Set circleObj = ThisDrawing.ModelSpace.AddCircle(Centre, Rad)
                       End If
        Loop
        End Sub

mccad 发表于 2005-4-12 21:58:00

我的建议,尽量少用Err.Description,而用Err.Number好些,这样可以避免不同语言版本的问题。

alin 发表于 2005-4-12 22:01:00

谢谢明总指教,呵呵

yj821005 发表于 2005-4-13 09:47:00

我见好多代码里面都用 On Error Resume Next 这样好不好的啊?什么情况下应该而且提倡用,什么情况下最好不要用 啊,谢谢!
页: [1]
查看完整版本: [求助]如何加while语句