【问题标题】:Large Chart Copy Paste Excel VBA long time to perform大图表复制粘贴Excel VBA长时间执行
【发布时间】:2020-01-15 16:48:40
【问题描述】:

我绘制了一个大型数据集(约 970,000 个点),并希望通过 VBA 复制并粘贴到另一个工作表中。我已经成功了,但是执行需要 2 多分钟。我粘贴为图片。

关于如何在更短的时间内完成此任务的任何想法/想法?在另一个步骤中,我想将图表复制到 .ppt - 我目前正在复制第一步生成的图片并在短时间内粘贴到 .ppt 中,因此需要将图表转换为格式 - 图片最好的格式?

谢谢(抱歉,将几行代码上传到我当前使用的 [代码] 部分时出现问题),

Sheets("hg Flow and Pressure").Select
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy

With Worksheets("h For SinglePageExisting")        ' this takes over 2 minutes to process - tried
     .Activate                                      ' to make chart on anther worksheet - no luck
     .Range("T15").Select                           ' tried to change the formatting - no luck
     .Pictures.Paste.Select
 End With

【问题讨论】:

    标签: excel vba time graph charts


    【解决方案1】:

    您可能会考虑绘制较小的数据子集,例如每十个数据点绘制一次。 Excel 的图表没有特别高的分辨率,因此当您删除很多点时,通常几乎不会丢失细节。

    您可以使用如下公式将A 列中的数据子集放入辅助列中:

    =OFFSET($A$2,10*ROW()-48,0,1,1)
    

    其中$A$2 是数据的开始,10 选择每 10 个数据点,-48 是偏移量,取决于您的辅助列从哪一行开始。您可以调整 10-48 以匹配电子表格的详细信息。

    希望对您有所帮助。

    【讨论】:

    • 虽然这确实可行,但这就像放弃——也许是我唯一的选择,但这就是我向世界上最有经验的程序员发帖的原因。希望通过 VBA 有另一种方式,比如使用截图工具 - 这可以编程吗?
    • 也许 Excel 的 camera tool 会起作用。
    • 谢谢,对我来说是新工具,但它仅限于单元格,不适用于图表。这与我所寻求的完全一致。也许存在类似的工具?
    • 如果您将图表嵌入到工作表中,那么相机工具将捕获它。
    【解决方案2】:

    是“汞流量和压力”图表吗?它在自己的工作表上?而“h For SinglePageExisting”是工作表吗?

    所以...

    您无需选择并激活所有内容。

    Charts("hg Flow and Pressure").CopyPicture xlScreen, xlPicture
    Worksheets("h For SinglePageExisting").Paste
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多