我可以通過創建一個空的圖表,然後將圖表的位置設置爲空圖表工作表,在圖表上放置多個圖表。在圖表中放置多個圖表時,如何使用vba更改圖表屬性?
'This creates multiple charts within a single chart sheet!
Charts.Add 'Creates empty chart page when empty cell is selected
'Keep track of chart page for later reference
Dim chartSheet As String
chartSheet = ActiveChart.Name
.... 'Create three separate charts with data here
'Now place these charts within our empty chart page
Set chart1 = chart1.Location(Where:=xlLocationAsObject, Name:=chartSheet)
Set chart2 = chart2.Location(Where:=xlLocationAsObject, Name:=chartSheet)
Set chart3 = chart3.Location(Where:=xlLocationAsObject, Name:=chartSheet)
所有的代碼一直工作到這一點。圖表包含所有3個圖表,儘管圖表全部重疊。當我嘗試調整圖表的位置...
'This code fails to run!
chart1.Parent.Top = 0
chart1.Parent.Left = 0
代碼返回對象的運行時錯誤不支持此屬性或方法。我知道可以通過單擊和拖動來手動移動圖形,並且我知道如果圖表位於正常工作表內,上面的代碼就可以工作。但由於某種原因,當圖表位於圖表中時,此代碼會失敗。有沒有辦法讓VBA做我想做的事?
感謝您的幫助。
我懷疑了。它是有道理的,chart1.Parent並沒有提到我認爲它會提及的東西。 我用你的提示,並更密切地分析了對象模型。我認爲它的工作方式是這樣的:chart1屬於工作簿本身,但我想要的三個圖表實際上是chart1的* children *。如果我能找到包含在外部圖表內的圖表對象,那麼我可以操縱這些位置。 – Roman
我已經更新了我的答案,提出了一個解決方案來循環瀏覽孩子 – Pynner