Board logo

標題: (已解決)關於動態圖表定義命名範圍後 新增資料不會自動更新 [打印本頁]

作者: moonsmyrna    時間: 2011-12-15 12:29     標題: (已解決)關於動態圖表定義命名範圍後 新增資料不會自動更新

本帖最後由 moonsmyrna 於 2011-12-20 17:56 編輯

各位前輩你好~

我想在表格新增欄位(不是新增列)時,圖表跟著變動
例如目前有A,B,C欄位 我想新增D,E
但問題是我設定好圖表的資料範圍=graphexpr後,資料顯示正確
但新增D,E欄位時,卻沒反應,要手動再設一次資料範圍=graphexpr才會更新
我目前有定義命名範圍如下
graphexpr=OFFSET('合併 (2)'!$B$3:$B$10,0,0,8,COUNTA('合併 (2)'!$B$3:$L$3))

我所做的檔案如附件[attach]8813[/attach]

是不是我有哪裡用錯了呢>"<再麻煩各位指教
或是有其他文章可參考的呢
作者: moonsmyrna    時間: 2011-12-20 17:50

本帖最後由 moonsmyrna 於 2011-12-20 17:57 編輯

相信答案就在討論版中,所以大家才都沒理我,既然這樣,只好自力救濟了!!

最後爬文借助GBKEE前輩的VBA程式&google大神的力量解決了這次的困難
GBKEE前輩回答的主題
提供圖表相關的VBA程式,對我來說滿有用的(-不召蜂引蝶的小花-)

終於完成不管新增列或欄的資料,圖表都會跟著變動~vba程式碼變更如下
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     Dim 繪圖區 As Range
  3.     Dim i, j As String
  4.    
  5.     If [COUNTA(合併!$A:$A)] > 0 Then
  6.         i = [COUNTA(合併!$A:$A)] '計算有值的列數
  7.         j = [SUBSTITUTE(ADDRESS(ROW(),COUNTA(合併!$A$2:$Z$2),4),ROW(),"")] '計算有值的行數,並轉換成行名 ex:第1行為A
  8.     Else
  9.         i = 2
  10.         j = "B"
  11.     End If
  12.    
  13.     Set 繪圖區 = Range("B2", j & i)
  14.     ChartObjects("Chart 1").Activate
  15.     ActiveChart.SetSourceData 繪圖區, 2
  16.     ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="cheryl" '設定圖表類型 自訂cheryl
  17.     ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Throughput" 'Y軸title
  18.     ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Engines" 'X軸title
  19.     ActiveChart.SeriesCollection(1).XValues = Range("A3", "A" & i) '設定X軸類別
  20.     Target.Select
  21. End Sub
複製代碼
附上完成版excel [attach]8857[/attach]

當然還有些BUG...像是如果不是連續資料(ex: AAA,BBB,<空格>,CCC)的話 圖表就會怪怪的
再請大家指教OTZ




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)