VBA 代码可以使用 F8 键,但运行时不行

VBA 代码可以使用 F8 键,但运行时不行

我编写了一些 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

相关内容