返回列表 上一主題 發帖

[發問] 請問如何隨表內數值變動時,自動變更圖表座標刻度尺值

[發問] 請問如何隨表內數值變動時,自動變更圖表座標刻度尺值

請問各為專家:
(圖2)裡的座標刻度(圖3),如何隨計表內(圖1)數值變動時,自動變更圖表座標刻度尺值
          最小值:參照(圖1)的(B114儲存格),位置會變動
         最大值:參照(圖1)的(B98儲存格),位置會變動
         主要刻度間距:參照(圖1)的(I4儲存格),位置 不會變動
         類別X軸相交於:參照(圖1)的(B108儲存格),位置不會變動

另附上檔案請專家幫忙,謝謝您!



計劃表.rar (555.94 KB)
peter460191

本帖最後由 GBKEE 於 2014-6-12 09:25 編輯

回復 1# peter460191
試試看
  1. Option Explicit
  2. ' Sheet6("工作價位走勢圖")工作表模組的程式碼
  3. Private Sub Worksheet_Calculate()   '工作表中儲存格公式值有變動的預設事件
  4.     自動變更圖表座標刻度尺的值
  5. End Sub
  6. Private Sub Worksheet_Change(ByVal Target As Range) '工作表中儲存格值有變動的預設事件
  7.     自動變更圖表座標刻度尺的值
  8. End Sub
  9. Private Sub 自動變更圖表座標刻度尺的值()
  10.    If [count(Sales)] > 0 Then
  11.         With ChartObjects(1).Chart.Axes(xlValue)
  12.             .MinimumScale = [min(Sales)]  '數值列的最小值
  13.             .MaximumScale = [max(Sales)]  '數值列的最大值
  14.             ' ** [ 活頁簿的函數公式 ] *** 不可用變數
  15.             .MinorUnit = 1
  16.             .MajorUnit = 1
  17.             .CrossesAt = ([min(Sales)] + [max(Sales)]) / 2
  18.             'CrossesAt 傳回或設定數值座標軸上與類別座標軸的交點。僅套用至數值座標軸
  19.         End With
  20.     End If
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# GBKEE


     非常謝謝GBKEE超級版大
     我趕快來試試看。
     謝謝您 !
peter460191

TOP

回復 2# GBKEE


    請問GBKEE版大

不好意思!試了好多次,都沒反應,想請教GBKEE版大要如何使用?
peter460191

TOP

回復 4# peter460191
你工作表上有名稱定義 Sales 這範圍內從上而下的給資料
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 5# GBKEE


    GBKEE版大,不好意思!
   初學VBA,不太了解您的意思,方便再細部指導嗎?
    拍勢啦!謝謝您!
peter460191

TOP

本帖最後由 GBKEE 於 2014-6-17 13:22 編輯

回復 6# peter460191

   
你工作表上有名稱定義 Sales 這範圍內從上而下的給資料

到工作表指令 插入-> 名稱->定義
看看範圍在哪裡


Ex.rar (544.64 KB)
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# GBKEE


    GBKEE版大,不好意思!我懂您的意思了,但是我想要的值是另一張工作表的四個值(其中2個固定,2個變動;若變動值不行,4個固定也可以),不知這樣程  
    式要如何寫?謝謝您了!

         (表2-價位走勢圖)裡的座標刻度,如何隨計表內(表1-計劃表(主檔))數值變動時,自動變更(表2-價位走勢圖)圖表座標刻度尺值
          最小值:參照(表1-計劃表(主檔))的(B114儲存格),位置會變動,
          最大值:參照(表1-計劃表(主檔))的(B98儲存格),位置會變動
          主要刻度間距:參照(表1-計劃表(主檔))的(I4儲存格),位置 不會變動
          類別X軸相交於:參照(表1-計劃表(主檔))的(B108儲存格),位置不會變動
peter460191

TOP

回復 8# peter460191
2# 之前的  Sheet6("工作價位走勢圖")工作表模組程式碼要刪掉
是這樣嗎
  1. ' Sheet3("計劃表(主檔)")工作表模組的程式碼
  2. Private Sub Worksheet_Calculate()   '工作表中儲存格公式值有變動的預設事件
  3.     自動變更圖表座標刻度尺的值
  4. End Sub
  5. Private Sub Worksheet_Change(ByVal Target As Range) '工作表中儲存格值有變動的預設事件
  6.     自動變更圖表座標刻度尺的值
  7. End Sub
  8. Private Sub 自動變更圖表座標刻度尺的值()
  9.     With Sheets("價位走勢圖").ChartObjects(1).Chart.Axes(xlValue)
  10.         .MinimumScale = [min(B109:B116)]  '數值列的最小值 :位置會變動(取範圍內的最小值)
  11.         .MaximumScale = [max(B98:B107)]   '數值列的最大值 :位置會變動(取範圍內的最大值)
  12.         ' ** [ 活頁簿的函數公式 ] *** 不可用變數
  13.         '.MinorUnit = 1
  14.         .MajorUnit = [I4]    '位置會固定
  15.         .CrossesAt = [B108]  '位置會固定
  16.         'CrossesAt 傳回或設定數值座標軸上與類別座標軸的交點。僅套用至數值座標軸
  17.         End With
  18. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 9# GBKEE


非常謝謝GBKEE超級版大
就是這樣的效果,您真是厲害
要好好來學學
謝謝您 !
peter460191

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題