返回列表 上一主題 發帖

[發問] 如何將二個不同位置的資料產生一個圖表呢?

本帖最後由 GBKEE 於 2012-4-5 08:13 編輯

回復 5# dechiuan999
Do Until .SeriesCollection.Count = 4        '執行迴圈:  Until ( 一直到)  條件成立(數列的總數=4 ) 時 不執行迴圈
.SeriesCollection(5).Delete                          '刪除第5個數列資料
Loop
  1. Option Explicit
  2. Sub Ex()
  3.      Dim Rng(2) As Range, xl As Integer
  4.      With Worksheets("當月統計表及圖表")
  5.         .ChartObjects.Delete                            '刪除所有圖表
  6.         Set Rng(0) = .Range("a1").Resize(.[a1].End(xlDown).Row - 1, .[a1].End(xlDown).End(xlToRight).Column)        '圖表放置範圍
  7.         Set Rng(1) = .[B17:T21]                         '基隆,台北港,六堵,南崁長榮,桃園 等關數據
  8.         Set Rng(2) = .[B25:F29]                         '五堵關數據
  9.         With .ChartObjects.Add(Rng(0)(1).Left, Rng(0)(1).Top, Rng(0).Width, Rng(0).Height).Chart
  10.            .Parent.Name = "各關區貨物存放處所統計表"
  11.             For xl = 2 To Rng(1).Rows.Count
  12.                 With .SeriesCollection.NewSeries        '建立新數列
  13.                     .Name = Rng(1).Cells(xl, 0)         '列名稱
  14.                     .Values = "=" & Rng(1).Rows(xl).Address(, , xlR1C1, 1) & "," & Rng(2).Rows(xl).Address(, , xlR1C1, 1)
  15.                                                         '.Values:  新數列的值-> 連接 Rng(1),Rng(2) 的 R1C1式 位址
  16.                     .XValues = "=" & Rng(1).Rows(1).Address(, , xlR1C1, 1) & "," & Rng(2).Rows(1).Address(, , xlR1C1, 1)
  17.                                                         ' .XValues: 新數列 X軸標籤
  18.                 End With
  19.             Next
  20.             .HasTitle = True                            '新增圖表後 沒有指定圖表資料範圍 固須在  資料範圍指定後
  21.            .ChartTitle.Characters.Text = Format(DateAdd("M", -1, Date), "oooo") & " 份各關區貨物存放處所統計表 ( " & Application.Sum(Rng(1), Rng(2)) & " 份)"            
  22.            .ApplyDataLabels AutoText:=True             '自動顯示適當的數值
  23.         End With
  24.     End With
  25. End Sub
複製代碼

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題