簡體   English   中英

編寫宏代碼以打開和關閉Excel圖表中的系列

[英]writing a macro code to turn on and off a series in an excel chart

我在Excel中有一些看起來像這樣的數據

Time Ending     NSW1.Price     Black.Coal      Gas
1/01/2011 0:00  30.89335731 32.33667677 41.63653171
8/01/2011 0:00  30.98102854 32.24805366 41.33294734
15/01/2011 0:00 30.73075514 32.11496704 40.76272865
22/01/2011 0:00 30.76027568 30.50381086 36.56215084
29/01/2011 0:00 29.76732763 34.65090389 43.94289058
5/02/2011 0:00  37.76696975 39.97741408 52.7701473
12/02/2011 0:00 37.94918779 38.96889352 50.08463564
19/02/2011 0:00 37.20419977 38.83388594 49.44580279
26/02/2011 0:00 36.87868151 38.64890145 48.77325684

我試圖創建一個復選框來打開和關閉圖中的系列。 例如,如果我只想要一張煤和天然氣的圖表,而不想要nsw1price。

我記錄了一個宏來執行此操作,然后將其分配給一個復選框。 但是我的宏不起作用?

這是錄音中的代碼:

Sub Macro8()
'
' Macro8 Macro
'

'
    ActiveSheet.ChartObjects("Chart 2").Activate
    ActiveSheet.ChartObjects("Chart 2").Activate
    Application.CutCopyMode = False
    Range("J17").Select
End Sub

我不確定該如何解決?

任何幫助,將不勝感激,謝謝。

EDIT1:

傳奇問題

您將需要標識要修改的序列號。 但是此代碼將翻轉系列的可見狀態。 這適用於折線圖:

Sub Macro1()    
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.FullSeriesCollection(2).Format.Line.Visible = _
        Not ActiveChart.FullSeriesCollection(2).Format.Line.Visible
End Sub

如果您有條形圖,則還需要解決填充問題:

ActiveChart.FullSeriesCollection(2).Format.Fill.Visible = _
Not ActiveChart.FullSeriesCollection(2).Format.Fill.Visible

好了,有兩種方法可以做到這一點,每種方法都有其優缺點。

1)我認為最簡單的方法是添加一個覆蓋圖例項的白色框,並翻轉框的可見狀態,使其與系列可見。 ActiveSheet.Shapes("coalRectangle").Visible = msoTrue

2)下一個選項將重新考慮您刪除然后恢復每個系列的整個過程:

Sub DeleteSeries()
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.FullSeriesCollection(3).Delete
End Sub

Sub AddSeries()
    ActiveSheet.ChartObjects("Chart 1").Activate
    With ActiveChart.SeriesCollection.NewSeries
        .Values = "=Sheet1!L12:L23"
        .Name = "=Sheet1!L11"      
    End With
End Sub

第一個的優點是簡單,但是如果有很多列,根據圖例的布局可能會很棘手。 如果用戶可以添加或刪除許多不同的列,第二個缺點就是要跟蹤序列號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM