M3H*_*HD1 2 excel vba copy-paste shape
我想复制一个Shape并粘贴一个已经包含一个或多个Shapes的Sheet.我尝试使用以下简单代码:
myShape.Select
Selection.Copy
ActiveWorkbook.Sheets(mySheet).Paste
Run Code Online (Sandbox Code Playgroud)
但它将它贴在工作表中现有的形状上方...
有没有解决方案来检测现有形状的结束或直接粘贴?谢谢
这是你在尝试什么?
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
Run Code Online (Sandbox Code Playgroud)
如果有更多的形状,然后你将不得不遍历所有的形状,然后找到最后的形状,并采取形状的.Top和.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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17185 次 |
| 最近记录: |