返回列表 上一主題 發帖

[發問] 如何寫vba改變圖表刻度

[發問] 如何寫vba改變圖表刻度

小弟有一圖表想寫vba的方式來指定位置來改變圖表的最大值與最小值
我該如何寫呢?

問.rar (9.95 KB)

80 字節以內
不支持自定義 Discuz! 代碼

一般來說類似你這樣的需求.
其實Excel有提供一個工具可以讓我們很快的得到變更相關數據的指令,
那就是 : "錄製新巨集", 以下是錄製出來的程式內容:
Sub Macro1()
'
' Macro1 Macro
' user 在 2011/5/11 錄製的巨集
'
'
    ActiveSheet.ChartObjects("圖表 9").Activate
    ActiveChart.Axes(xlValue).Select
    With ActiveChart.Axes(xlValue)
        .MinimumScale = -1400  '<----- 圖表刻度最小值
        .MaximumScale = -600   '<----- 圖表刻度最大值
        .MinorUnit = 1.8
        .MajorUnit = 100
        .Crosses = xlCustom
        .CrossesAt = 0
        .ReversePlotOrder = False
        .ScaleType = xlLinear
        .DisplayUnit = xlNone
    End With
End Sub

圖表中的各種元素想要怎麼變更都可以經由錄製找到關鍵程式碼.

TOP

因為我的有許多各規格,會因為我所篩選的品名變更規格,使用巨集錄製的化無法達到我變更規格後圖表的上下界線也一並變更~~不知道該如何才可讓她依照我所指定欄位來變更上限&下限呢?
80 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 luhpro 於 2011-5-16 23:22 編輯

回復 3# dragonbx

當我們需要針對多個同類型物件賦予不同的元素內容時,
就我所知有個方法算是比較容易使用的 : 使用 Dictionary 物件 -

先分別以 "表格名稱" 為鍵值來建立 dMin 與 dMax 兩個 Dictionary
dMin(表格名稱)=該圖表刻度最小值
dMax(表格名稱)=該圖表刻度最大值
如此則可用
.
.
.
  .MinimumScale = dMin(表格名稱) 與
  .MaximumScale = dMax(表格名稱)
.
.
.
來達成依表格名稱給值的目標
Dictionary用法可參考 尋找失落的座標

另外用陣列也可以做到, 只是在給值的過程中可能需要相應多次 Redim 擴充其大小比較繁瑣一些.

TOP

原來如此設定
謝謝您的分享

TOP

TOP

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題