標題:
(已解決)關於動態圖表定義命名範圍後 新增資料不會自動更新
[打印本頁]
作者:
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程式碼變更如下
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim 繪圖區 As Range
Dim i, j As String
If [COUNTA(合併!$A:$A)] > 0 Then
i = [COUNTA(合併!$A:$A)] '計算有值的列數
j = [SUBSTITUTE(ADDRESS(ROW(),COUNTA(合併!$A$2:$Z$2),4),ROW(),"")] '計算有值的行數,並轉換成行名 ex:第1行為A
Else
i = 2
j = "B"
End If
Set 繪圖區 = Range("B2", j & i)
ChartObjects("Chart 1").Activate
ActiveChart.SetSourceData 繪圖區, 2
ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="cheryl" '設定圖表類型 自訂cheryl
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Throughput" 'Y軸title
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Engines" 'X軸title
ActiveChart.SeriesCollection(1).XValues = Range("A3", "A" & i) '設定X軸類別
Target.Select
End Sub
複製代碼
附上完成版excel [attach]8857[/attach]
當然還有些BUG...像是如果不是連續資料(ex: AAA,BBB,<空格>,CCC)的話 圖表就會怪怪的
再請大家指教OTZ
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)