Может кто-нибудь сказать мне, почему этот Excel VBA не может скопировать и вставить фигуру с одного листа на другой? Форма «StandingsPix» и лист «Картинки» существуют в моей книге, и на самом деле, когда я записываю макрос, чтобы сделать это вручную, он создает аналогичный код. Переменная не установлена ». Помощь с благодарностью.
Sub CopyPictureToScorecard(TargetCells As Range)
Dim p As Shape
Dim p2 As Shape
Dim TargetWS As Worksheet
Set TargetWS = Sheets("Scorecards")
p = Sheets("Pictures").Shapes.Range(Array("StandingsPix")) <== Fails Here
p.Copy
TargetWS.Paste
'make sure the picture is properly centered on the scorecard
Set p2 = TargetWS.Shapes(TargetWS.Shapes.Count)
p2.Width = p.Width
p2.Height = p.Height
p2.Top = TargetCells.Top + (TargetCells.Height / 2) - (p2.Height / 2)
p2.Left = TargetCells.Left + (TargetCells.Width / 2) - (p2.Width / 2)
p2.Line.Visible = False
End Sub
Когда я записываю макрос, выполняющий это вручную (успешно!), Вот код, который он сгенерировал:
Sheets("Pictures").Select
ActiveSheet.Shapes.Range(Array("StandingsPix")).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Scorecards").Select
Range("K24").Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementLeft 621
Selection.ShapeRange.IncrementTop -369.75