我想创建一个宏来识别现有形状“图片 1”(增强的图元文件)的大小和位置,删除该形状,将图表“图表 3”从另一个工作簿复制到原始工作簿中作为增强的图元文件,并且尺寸/移动副本与原始形状的尺寸/位置相同。
我已将目标工作表声明为“wkst”,将源工作表声明为“源”。这一切都完美无缺,除了一件事:复制形状的第一个维度总是与原始形状略微偏离,无论我首先设置什么维度。在下面的代码中,形状的高度略有变化。
我添加了消息框,以便确保它们的值匹配,但MsgBox CurrentH
(原始形状的高度)显示的值与MsgBox wkst.Shapes("Picture 1").Height
(复制形状的高度)不同;它略有变化,即从 594 变为 572
任何帮助都会很棒,谢谢!
Dim CurrentW As Double
Dim CurrentH As Double
Dim CurrentT As Double
Dim CurrentL As Double
CurrentH = wkst.Shapes("Picture 1").Height
CurrentW = wkst.Shapes("Picture 1").Width
CurrentT = wkst.Shapes("Picture 1").Top
CurrentL = wkst.Shapes("Picture 1").Left
MsgBox CurrentH
MsgBox CurrentW
MsgBox CurrentT
MsgBox CurrentL
Source.ChartObjects("Chart 3").Copy
wkst.Shapes("Picture 1").Delete
wkst.Activate
wkst.PasteSpecial Format:="Picture (Enhanced Metafile)", Link:=False, DisplayAsIcon:=False
With ActiveWindow.Selection
.Name = "Picture 1"
.Height = CurrentH
.Width = CurrentW
.Left = CurrentL
.Top = CurrentT
End With
MsgBox wkst.Shapes("Picture 1").Height
MsgBox wkst.Shapes("Picture 1").Width
MsgBox wkst.Shapes("Picture 1").Top
MsgBox wkst.Shapes("Picture 1").Left