回复 10楼 lianyicq
非常感谢~13925919930@
2015-03-26 09:07
2015-03-26 09:15
2015-03-31 08:33
程序代码:Private Sub Form_Load()
Me.Show
'Set EXAPP = CreateObject("excel.application")
'Set WB = EXAPP.Workbooks.Open("c:\test.xlsx")
'Set sht = WB.Worksheets("Sheet1")
Set AApp = CreateObject("Autocad.Application")
Set ADWG = AApp.Documents.Open("c:\drawing1.dwg")
'Range("h7", "m9").Select
'Range("h7", "m9").Copy
For i = 0 To AApp.ActiveDocument.ModelSpace.Count - 1
'If AApp.ActiveDocument.ModelSpace(i).Lineweight = 106 Then
' parameter = AApp.ActiveDocument.ModelSpace(i).Coordinates
' Exit For
'End If
If AApp.ActiveDocument.ModelSpace(i).EntityName = "AcDbOle2Frame" Then
AApp.ActiveDocument.ModelSpace(i).LockAspectRatio = False
AApp.ActiveDocument.ModelSpace(i).Width = 500
AApp.ActiveDocument.ModelSpace(i).Height = 300
NewPosition(0) = 25
NewPosition(1) = 50
NewPosition(2) = 0
Call AApp.ActiveDocument.ModelSpace(i).Move(AApp.ActiveDocument.ModelSpace(i).InsertionPoint, NewPosition) 'insertionpoint is the coordinates of ole'lower-left
Form1.Print "Finish."
Exit For
End If
Next
'CoordString = parameter(0) & "," & parameter(1)
'ADWG.SendCommand "_pasteclip" & vbCr & CoordString & vbCr
'ADWG.Save
Form1.Caption = "OK"
End Sub我用以上代码测试过,没有问题。我用的是ACAD2013。你可以在遍历的时候,把每次得到的实体名称显示出来,找出OLE对象的名称很容易。我就是这样找才知道OLE对象名称是AcDbOle2Frame.

2015-03-31 08:44
2015-03-31 13:38
2015-03-31 13:41
2015-03-31 14:18