VBA只能在debugging模式下运行

我想要做的是从一张纸上复制一堆作为图片的单元格,并将其粘贴到另一张纸张的图表对象中。 下面是使用的代码,它在debugging模式下运行良好,但是当我正常运行它时,我没有看到图表被粘贴到图表中。

Sub copy_paste_KDT() ' ' copy_paste_KDT Macro ' ' Worksheets("KDT").Range("J12:AB37").CopyPicture Appearance:=xlScreen, Format:=xlPicture Dim wb_path As String wb_path = Application.ThisWorkbook.Path 'Dim objCht As ChartObject 'Set objCht = ActiveSheet.ChartObjects("KDT Rectangle") 'If Not objCht Is Nothing Then If ActiveSheet.ChartObjects.Count > 0 Then ActiveSheet.ChartObjects("KDT Rectangle").Delete End If With Worksheets("profile") 'Creating the Chart .ChartObjects.Add(690, 125, 550, 245).Name = "KDT Rectangle" End With If Range("B11").Value = 0 Then With Worksheets("profile") Application.ScreenUpdating = True 'Application.Wait (Now + TimeValue("00:00:01")) With .ChartObjects("KDT Rectangle") .Chart.Paste End With End With End If End Sub 

我也尝试了一些东西,如等待1到10秒,然后粘贴图像,但没用。 甚至试图把循环数从1到10亿,再次使用。 最后想要检查图像是否粘贴在工作表的随机单元格中,而且工作正常,但不在图表对象中。

我将不胜感激,如果有人能帮我找出为什么图像不粘贴。

TL,DR:复制的macros将excel的一部分作为屏幕截图粘贴到图表中创build图表,但在运行(F5)时无法填充图像,但在debugging模式(F8)下完美工作。

尽pipe我使用的是Excel 2010,而且您的代码在testing中可以正常工作。

您可以尝试在.Chart.Paste之前放入一个Select ,这可能有助于在图表中粘贴。 看到下面的代码,只是将行添加到您的原始代码,所以你几乎在那里。

 Option Explicit Sub copy_paste_KDT() ' ' copy_paste_KDT Macro ' ' Worksheets("KDT").Range("J12:AB37").CopyPicture Appearance:=xlScreen, Format:=xlPicture Dim wb_path As String wb_path = Application.ThisWorkbook.Path 'Dim objCht As ChartObject 'Set objCht = ActiveSheet.ChartObjects("KDT Rectangle") 'If Not objCht Is Nothing Then If ActiveSheet.ChartObjects.Count > 0 Then ActiveSheet.ChartObjects("KDT Rectangle").Delete End If With Worksheets("profile") 'Creating the Chart .ChartObjects.Add(690, 125, 550, 245).Name = "KDT Rectangle" End With If Range("B11").Value = 0 Then With Worksheets("profile") Application.ScreenUpdating = True 'Application.Wait (Now + TimeValue("00:00:01")) With .ChartObjects("KDT Rectangle") .Select 'Just added this .Chart.Paste End With End With End If End Sub