京寵展信息指南
1059
2022-12-03
Excel VBA設(shè)置圖表動態(tài)數(shù)據(jù)源實例教程
Excel圖表的數(shù)據(jù)源通常為一個連續(xù)區(qū)域,但有時會遇到圖表數(shù)據(jù)源區(qū)域不連續(xù),且需要動態(tài)改變的情況。例如下面的某公司人員基本情況匯總表,B列為部門名稱,C至S列分別為“性別”、“年齡”、“學(xué)歷”、“職稱”等不同類別數(shù)據(jù)的匯總,如果將這些數(shù)據(jù)同時顯示在一個圖表中,顯然不便觀察和比較數(shù)據(jù),這時可以用VBA來動態(tài)改變數(shù)據(jù)源,單獨對各個類別進(jìn)行顯示。
具體的方法是:先在表格中創(chuàng)建一個下拉列表,然后通過下拉列表選擇不同的系列,通過VBA代碼改變圖表數(shù)據(jù)區(qū)域,讓圖表中的數(shù)據(jù)隨之改變。下面以在Excel 2003中繪制柱形圖為例說明如下:
1.設(shè)置下拉列表。設(shè)置下拉列表的方法有很多,這里用數(shù)據(jù)有效性來設(shè)置。選擇某個單元格,如T14,單擊菜單“數(shù)據(jù)→有效性→設(shè)置→序列”,在“來源”下輸入“性別,年齡,學(xué)歷,職稱”(不含引號)后確定,這樣就在T14單元格中通過數(shù)據(jù)有效性設(shè)置了一個下拉列表。
2.插入圖表。選擇B3:D11區(qū)域,即“部門”和第一個類別所在區(qū)域“性別”,單擊菜單“插入→圖表→柱形圖→簇狀柱形圖”,單擊“完成”插入一個包含“男”、“女”兩個系列的柱形圖。
3.輸入VBA代碼。按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼:
Private Sub Worksheet_Change(ByVal Target As Range)If Target.Address = "$T$14" ThenDim RngStr As StringSelect Case Target.ValueCase "性別"RngStr = "b3:b11,c3:d11"Case "年齡"RngStr = "b3:b11,e3:i11"Case "學(xué)歷"RngStr = "b3:b11,j3:n11"Case "職稱"RngStr = "b3:b11,o3:s11"End SelectChartObjects("圖表 1").Chart.SetSourceData Source:=Range(RngStr)End IfEnd Sub
說明:改變T14單元格中的內(nèi)容時,圖表的數(shù)據(jù)區(qū)域隨之改變。本例中的圖表名稱為“圖表 1”,需根據(jù)實際進(jìn)行更改。查看圖表名稱的方法是:
Excel 2003:按住Ctrl鍵單擊圖表,在名稱框中即可看到所選圖表的名稱。
Excel 2007/2010:選擇圖表,在“圖表工具-布局”選項卡的“屬性”組中即可看到圖表名稱。
關(guān)閉VBA編輯器,返回Excel工作表界面,選擇T14單元格中的不同系列即可在圖表顯示相應(yīng)類別的數(shù)據(jù)。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。