建立帶有範圍和固定名稱的圖表

可以通過直接使用定義圖表資料的 Series 物件來建立圖表。為了在沒有現有圖表的情況下到達 Series,你可以在給定的 Worksheet 上建立一個 ChartObject,然後從中獲取 Chart 物件。使用 Series 物件的好處是你可以通過參考 Range 物件來設定 Values 和 XValues。這些資料屬性將正確定義 Series 並引用這些範圍。這種方法的缺點是在設定 Name 時不會處理相同的轉換; 它是固定值。它不會根據原始 Range 中的基礎資料進行調整。檢查 SERIES 公式,很明顯名稱是固定的。這必須通過直接建立 SERIES 公式來處理。

用於建立圖表的程式碼

請注意,此程式碼包含 Chart 和 Worksheet 的額外變數宣告。如果不使用它們,可以省略。但是,如果要修改樣式或任何其他圖表屬性,它們可能很有用。

Sub CreateChartWithRangesAndFixedName()

    Dim xData As Range
    Dim yData As Range
    Dim serName As Range
    
    'set the ranges to get the data and y value label
    Set xData = Range("B3:B12")
    Set yData = Range("C3:C12")
    Set serName = Range("C2")
    
    'get reference to ActiveSheet
    Dim sht As Worksheet
    Set sht = ActiveSheet
    
    'create a new ChartObject at position (48, 195) with width 400 and height 300
    Dim chtObj As ChartObject
    Set chtObj = sht.ChartObjects.Add(48, 195, 400, 300)
    
    'get reference to chart object
    Dim cht As Chart
    Set cht = chtObj.Chart
    
    'create the new series
    Dim ser As Series
    Set ser = cht.SeriesCollection.NewSeries
    
    ser.Values = yData
    ser.XValues = xData
    ser.Name = serName
    
    ser.ChartType = xlXYScatterLines

End Sub

程式碼執行後的原始資料/範圍和生成的 Chart

請注意,SERIES 公式包含系列名稱的 B,而不是對建立它的 Range 的引用。

StackOverflow 文件