我想将形状移动到另一张纸上,而不在宏中使用复制和粘贴。还有另一种方法吗?
答案 0 :(得分:0)
如果形状是图表对象,则可以更改其位置:
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2"
对于所有其他类型的形状,没有location属性或move方法。如果要避免复制和粘贴,则需要在新图纸上创建一个新形状并复制所有相关属性,然后删除原始属性。
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