![VBA 代码可以使用 F8 键,但运行时不行](https://linux22.com/image/1580035/VBA%20%E4%BB%A3%E7%A0%81%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20F8%20%E9%94%AE%EF%BC%8C%E4%BD%86%E8%BF%90%E8%A1%8C%E6%97%B6%E4%B8%8D%E8%A1%8C.png)
我编写了一些 VBA 代码,用于将嵌入图片插入 Excel 工作表上的嵌入图表中。该例程尝试通过复制图片、添加嵌入图表、将尺寸设置为图片的尺寸,然后粘贴图片来执行此操作。
问题是,当我使用(“调试” → “单步执行”)单步执行时,它没有任何错误F8。代码看起来很简单,我已经尝试了复制/粘贴序列的放置,似乎没有什么能让图片在运行宏时完成最后的粘贴步骤。
Sub EP()
Sheet9.Shapes("Picture 2").Copy
Dim xcht As Chart: Set xcht = Sheet9.Shapes.AddChart.Chart
With xcht
.ChartArea.ClearContents
.ChartArea.Width = Sheet9.Shapes("Picture 2").Width
.ChartArea.Height = Sheet9.Shapes("Picture 2").Height
.Paste
End With
End Sub
它与 配合得很好F8;图片粘贴到图表中。只是在实际运行时不行——我使用 VBA 编辑器中的绿色播放按钮运行,通过宏对话框运行,并通过工作表上的按钮运行。结果没有变化。
出了什么问题?如何通过正常调用让此例程正确运行?如能提供任何帮助,我将不胜感激。
答案1
您需要选择图表,以便.Paste 会到达某个位置:
Sub EP()
Sheet9.Shapes("Picture 2").Copy
Dim xcht As Chart
Set xcht = Sheet9.Shapes.AddChart.Chart
With xcht
.ChartArea.Select
.ChartArea.ClearContents
.ChartArea.Width = Sheet9.Shapes("Picture 2").Width
.ChartArea.Height = Sheet9.Shapes("Picture 2").Height
.Paste
End With
End Sub