2015-09-04 276 views
2

我有将图表作为图片复制的代码AChart.CopyPicture我想将其粘贴到Destination as Worksheet,但将其粘贴为与原始表单相同的位置我从我的图表复制。 (所以用AChart.LeftAChart.Top如何在VBA,Excel中复制和选择图表,图片等

如果我只有一个图表在我的源和目标表中,但我有很多图表,这对我来说是非常直接的。

所以我建议的选择是粘贴后立即选择新图表,并将.Left.Top设置为正确的值。我只是不知道如何选择刚刚粘贴的Piture?

我的想法并没有特别注意这个解决方案,我很清楚它可能会导致XY problem。因此,请随时以不同的角度来解决我的问题。

+0

粘贴的图片是不是被选中的活动元素?如果是这种情况,您可以在粘贴后立即操作该对象的属性。 –

+0

换句话说,你在说'Selection'对象会让我设置这些属性。那是对的吗? – sgp667

+0

这是我的想法,至少没有测试或尝试它。您可以找到要复制的图表的'.Left'和'.Top'属性,然后将它们应用于图片,使用每个对象的对象模型来获取和设置这些值。 –

回答

2

您应该能够使用Selection对象修改粘贴的图表。 Destination工作表也必须是活动工作表。如果要复制源表中的每个图表,可以使用For Each循环。

Destination.Activate 
For Each cht In Source.ChartObjects 
    cht.CopyPicture 
    Destination.Paste 
    Selection.Left = cht.Left 
    Selection.Top = cht.Top 
Next cht