Excel繪圖的問題 (VBA coding)

請問一下會Excel VBA的大大:

我有1個worksheet,

裡面的資料,

A欄是日期,B欄是每日營收。

A1及B1是表頭,分別是 "日期" 及"每日營收"

真正的資料是從 A2~A100及 B2~B100。

用這個 worksheet 的資料,分別畫了10個不同的XY折線圖.

每一個圖各別用一個 worksheet 來儲存。

在每一個圖中,

類別X軸標籤是從:A2 ~ A50

數值的範圍則是從:B2 ~ B50

今天,假如我要更改數值的範圍,

類別X軸標籤改成:A51 ~ A100

數值的範圍則是從:B51 ~ B100

如果我不想一個一個 worksheet 去更改(要改十次,很費時!),

想用 VBA一次完成,

請問這樣的coding 該如何來寫?

會EXcel VBA的大大可以告訴我嗎? 感激!

P.S. 我有試用過 Macro來做,可是coding 裡是用[R1C1]欄名列號表示法,

似乎是沒有辦法用 coding 來更改成我所要的資料範圍。

3 Answers

Rating
  • 1 decade ago
    Favorite Answer

    底下是改 Sheet1 圖表的程式, 你可以把它複製多份, 把 Sheet1 改成 Sheet2, Sheet3, Sheet4......Sheet10, 執行一次就可把10個圖表都改好

    '用底下程式段更改圖表的資料範圍

    Worksheets("Sheet1").ChartObjects(1).Activate

    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A51:B100"), PlotBy:=xlColumns

    ' 若要設定圖表/座標軸的標題, 可參考用底下程式段

    With ActiveChart

    .HasTitle = True

    .ChartTitle.Characters.Text = "每日營收"

    .Axes(xlCategory, xlPrimary).HasTitle = True

    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "日期"

    .Axes(xlValue, xlPrimary).HasTitle = True

    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "營收額"

    End With

  • 1 decade ago

    可以請教流浪人大大:

    資料範圍的「定義」該如何"定義"呢?

    謝謝!

  • 1 decade ago

    不用麻煩程式或巨集

    你只要將你的資料範圍建立一個「定義」即可

    日後若要更改範圍,僅需要更改定義中的資料範圍即可

Still have questions? Get your answers by asking now.