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

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

用於建立圖表的程式碼

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

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 文件