我大概明白 tfod2000 老兄的意思了!好像我没发现在VBA里没有点的坐标属性所以在已创建的点上好像不能获取的!还好点的属性并不多!我想了个傻办法就是把原来的物体选取后创建一个新的点,再把原来点的属性赋予它!再把原来的点删除!呵呵!实在惭愧小弟我只能像出这个傻办法来解决这个问题!不知道哪位大虾有更好的办法请告诉小弟!
下面是小弟的代码有不对的地方请各位指正: Sub test() On Error Resume Next Dim sset As AcadSelectionSet Set sset = ThisDrawing.SelectionSets.Add("test") sset.SelectOnScreen Dim entry As AcadEntity For Each entry In sset Name1 = entry.ObjectName If Name1 = "AcDbPoint" Then Dim pointObj As AcadPoint Dim point1(0 To 2) As Double ' 定义点的位置 point1(0) = 0#: point1(1) = 0#: point1(2) = 0# '可以改为你需要的点 ' 创建点 Set pointObj = ThisDrawing.ModelSpace.AddPoint(point1) pointObj.Color = entry.Color pointObj.Layer = entry.Layer pointObj.Linetype = entry.Linetype '可以不需要 pointObj.LinetypeScale = entry.LinetypeScale '可以不需要 pointObj.Lineweight = entry.Lineweight '可以不需要 pointObj.Thickness = entry.Thickness '可以不需要 entry.Delete Else MsgBox "没有点被选去,请检查", vbOKOnly End If Next entry sset.Delete End Sub 在point1的3个点的定义中可以加入你对话框里点的3个坐标数据!