如何使用VBA在Excel工作表中的现有形状后面粘贴形状?
我想复制一个形状并粘贴一张已经包含一个或多个形状的表单。 我尝试使用以下简单的代码:
myShape.Select Selection.Copy ActiveWorkbook.Sheets(mySheet).Paste
但它将其粘贴在表单中现有的形状上面…
有没有解决scheme来检测现有形状的结束或直接粘贴? 谢谢
这是你正在尝试?
Sub Sample() Dim myShape As Shape Set myShape = ActiveSheet.Shapes("Rectangle 1") myShape.Copy ActiveSheet.Paste With Selection .Top = myShape.Height + 10 .Left = myShape.Left End With End Sub
如果有更多的形状,那么你将不得不遍历所有的形状,然后find最后的形状,并采取该形状的.Height
和。 .Height
考虑。
看到这个例子
Option Explicit Sub Sample() Dim myShape As Shape, shp As Shape Dim sHeight As Double, sTopp As Double For Each shp In ActiveSheet.Shapes If shp.Top > sTopp Then sTopp = shp.Top sHeight = shp.Height End If Next Set myShape = ActiveSheet.Shapes("Rectangle 1") myShape.Copy ActiveSheet.Paste With Selection .Top = sTopp + sHeight + 10 .Left = myShape.Left End With End Sub