Как я могу использовать метод Shapes.AddShape для добавления объекта камеры - PullRequest
1 голос
/ 18 ноября 2011

Если я запишу макрос.Я вижу этот код.

Selection.Copy
ActiveSheet.Shapes.AddShape(, 480.75, 171#, 63#, 63#).Select
ActiveSheet.Shapes.Range(Array("Picture 2")).Select
Application.CutCopyMode = False

Когда я смотрел на перечисление MsoAutoShapeType, я не мог видеть объект камеры.

И если я изменяю любое значение, это дает исключение ... (, 480.75, 171 #, 63 #, 63 #) документация гласит, что это значения top, left, width и height ...

Я хочу написать метод, который может создавать объекты камеры любого диапазона, который я задаю

Sub TakePhoto(myRange As String, myPicture As String)

Как мне этого добиться?

1 Ответ

1 голос
/ 18 ноября 2011

Попробуйте:

Sub TakePhoto(rngSource As Excel.Range, rngTarget As Excel.Range)
Dim ws As Excel.Worksheet
Dim shpPicture As Excel.Shape

Set ws = rngTarget.Parent
rngSource.Copy
ws.Pictures.Paste Link:=True
Set shpPicture = ws.Shapes(ws.Shapes.Count)
With shpPicture
    .Top = rngTarget.Top
    .Left = rngTarget.Left
End With
End Sub

Назовите это так:

Sub test()
TakePhoto Sheet2.Range("A1:C4"), Sheet1.Range("c5")
End Sub
...