【问题标题】:Clear clipboard when copying graphs in Excel VBA在 Excel VBA 中复制图形时清除剪贴板
【发布时间】:2011-12-09 06:22:12
【问题描述】:

我使用 VBA 将几个 Excel 图表从 Excel 复制并粘贴到 Powerpoint:

'copy from excel worksheet
    Workbooks(Stats & ".xls").Worksheets(Stats).ChartObjects("graph4").Copy
'paste into powerpoint presentation
    .Slides(3).Shapes.Paste

' more code and more copy and pastes
' ...

有时,复制图表会失败。除了记忆问题之外,我对此没有任何解释。 我得到的错误信息:

对象“Chartobject”的方法“复制”失败。

然后 Excel 没有响应,我必须重新启动它。

我能做些什么来防止这种情况发生? 也许我可以清除复制和粘贴操作之间的剪贴板?

更新: 我已经尝试过上述两种清除剪贴板的方法。复制和粘贴操作仍然不时失败。运行时错误为“-2147417848 (80010108)”。 网上有一些关于这个错误的信息,所以我将从那里重新开始。

更新(最终): 我想我通过将这段代码放在图表被复制和粘贴的部分前面解决了这个问题。错误没有再次出现。

DoEvents 'lets the operating system clear / execute any backed up / queued events that it might have to execute.
'slow down the execution (to not get an error)
Workbooks(Stats & ".xls").Save

【问题讨论】:

    标签: excel vba powerpoint copy-paste


    【解决方案1】:

    这是一个通过 VBA 访问剪贴板的小例子:

    http://word.mvps.org/faqs/macrosvba/ManipulateClipboard.htm

    通过将一些空文本放入剪贴板来清除剪贴板。老实说,我不知道这是否能解决你原来的问题。

    【讨论】:

      【解决方案2】:

      您没有提及您正在使用哪个版本的 Office。如果是 2007,您是否应用了 Service Pack 2 并检查了可能解决此问题的修补程序?

      2007 年的原始版本很糟糕。

      【讨论】:

      • 这是一个企业环境。使用 Excel 2000 (v9)。
      • 好的。您可能希望将变量调暗为图表,然后不要直接使用图表,而是在变量中获取对它的引用。 Then If Not oCht = Nothing Then ... 做你的事。至少这可以让您在复制图表时发现任何问题,并在发生错误时抛出错误,以便您知道是哪个图表导致了问题。
      【解决方案3】:

      尝试在复制和粘贴操作之间放置Application.CutCopyMode = 0

      0False 表示“取消剪切或复制模式并移除移动边框”: http://msdn.microsoft.com/en-us/library/office/ff839532.aspx

      【讨论】:

        【解决方案4】:

        插入失败 应用程序.cutcopymode = 0 在复制和粘贴语句之间。

        我插入时成功了 application.cutcopymode = 0
        在 paste 和 close 语句之间。

        windows(ThisBook).activate: range(nextcell).select: activesheet.paste
        application.cutcopymode = 0
        windows(OtherBook).activate: activewindow.close
        

        【讨论】:

          【解决方案5】:

          在粘贴之前激活对象。我使用以下解决了

          .Slides(3).shapes.activate

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-07-29
            • 1970-01-01
            • 1970-01-01
            • 2015-12-20
            相关资源
            最近更新 更多