我有一個Excel圖表,它在切片器中進行選擇時發生變化。 我注意到繪圖區和圖例區根據製作的選擇而改變。vba圖例和繪圖區域調整大小
我試圖使用vba修復繪圖區域的位置和大小,但這不起作用。
繪圖區和圖例繼續調整大小,導致圖例與繪圖區重疊。我顯然不想要。
我有這樣的代碼,放置在VBA編輯器的工作表頁:
Option Explicit
Private Sub Chart_Calculate()
ChartObjects("grafiek 4").Activate
ActiveChart.PlotArea.Width = 637.783
ActiveChart.Legend.Left = 716.514
ActiveChart.Legend.Width = 176.735
ActiveChart.Legend.Height = 295.334
End Sub
有這個代碼,我承擔了自動調整大小也就不復存在了,但我看到了傳說中有時仍然重疊德積區。
有沒有永久解決這個問題的解決方案?
EDIT1:
昨天,我只是添加繪圖區的幾個參數。這似乎工作。但現在我又試了一次,這個傳說再次與劇情區重疊。
我改變了代碼:
Option Explicit
Private Sub Chart_Calculate()
ChartObjects("grafiek 4").Activate
ActiveChart.PlotArea.Top = 33.102
ActiveChart.PlotArea.Left = 67.1
ActiveChart.PlotArea.Width = 637.783
ActiveChart.Legend.Top = 7
ActiveChart.Legend.Left = 716.514
ActiveChart.Legend.Width = 176.735
ActiveChart.Legend.Height = 329.667
End Sub
因此,與2個繪圖區更paramters。
編輯2: 我檢查了Excel中的圖例屬性。在「選擇圖例」下有一個複選框:顯示沒有重疊繪圖區域的圖例(我不知道確切的英文文本)。 選中此框,但它確實與繪圖區重疊。
爲什麼不可能實現這個目標?對於地塊面積和傳說的固定尺寸應該不那麼難。
編輯3: 我現在有這個程序在我的工作簿:
Option Explicit
Private Sub Chart_Calculate()
ChartObjects("grafiek 4").Activate
With ActiveChart
With .PlotArea
.Top = 33.102
.Left = 67.1
.Width = 637.783
End With
With .Legend
.IncludeInLayout = True
.Position = xlLegendPositionRight
.AutoScaleFont = False
.Font.Size = 8
.Top = 5
.Left = 706.899
.Width = 179.735
.Height = 336.681
End With
End With
End Sub
Sub kopieergrafiek()
ActiveSheet.ChartObjects("Grafiek 4").Copy
End Sub
(包括在下面我的帖子的評論的建議)
我似乎並沒有工作。 worksheet_change事件可能更好嗎?
編輯4: 我還沒有解決這個問題。它已經發生時,圖例項目的名稱是1,以適應空間。當圖例中有很多項目適合可用空間時,也會發生這種情況。
我認爲這沒有解決辦法。除非我能以某種方式告訴excel最大化圖例中的項目數量。或最大化系列名稱的長度。
可能不完全是你想要的,但你可以像下面這樣將圖例與繪圖區分開:'ActiveChart.Legend.IncludeInLayout = True'然後像這樣設置位置:'ActiveChart.Legend.Position = xlLegendPositionRight' – 2014-10-28 15:03:13