Excel, Vba Macro для «перемещения» фигур в другую форму без копирования и вставки - PullRequest
0 голосов
/ 11 мая 2019

Я хочу переместить фигуру на другой лист без использования копирования и вставки в макрос. Есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 11 мая 2019

Если фигура является объектом диаграммы, вы можете просто изменить ее местоположение:

ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2"

Для всех других типов фигур нет свойства местоположения или метода перемещения.Если вы хотите избежать копирования и вставки, вам нужно создать новую форму на новом листе и скопировать все соответствующие свойства, а затем удалить оригинал.

Sub MoveShape()

    Dim shp1 As Shape, shp2 As Shape

    Set shp1 = Sheets("Sheet1").Shapes(1)
    Set shp2 = Sheets("Sheet2").Shapes.AddShape(shp1.Type, shp1.Left, shp1.Top, shp1.Width, shp1.Height)

    shp2.Name = shp1.Name
    shp2.Fill.ForeColor.RGB = shp1.Fill.ForeColor.RGB
    shp2.Line.Weight = shp1.Line.Weight
    shp2.Line.DashStyle = shp1.Line.DashStyle
    shp2.Line.ForeColor.RGB = shp1.Line.ForeColor.RGB

    shp1.Delete

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...