2015-09-04 277 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