編按:今天來給大家分享一個隨著數(shù)字變化儀表刻度顏色自動變化的動態(tài)儀表盤圖。教程中會用到一段VBA循環(huán)語句。感興趣的同學趕緊學起來吧! 今天要介紹給大家的圖表叫“刻度顏色動態(tài)變化儀表盤圖”,大概長成下面這樣子! 這個圖表的使用環(huán)境,是完成度、進度、占比類型的數(shù)據(jù)可視化展示。 初看這個圖表,感覺很簡單是吧?沒有過多的輔助數(shù)值,也沒有過多的操作,根據(jù)數(shù)據(jù)的變化而刻度指示顏色發(fā)生變化是它唯一的特色。用刻度顏色變化取代了普通儀表盤圖表中的指針。 看著簡單,但作者研究了半天,卻只能想到用VBA來做。 下面就是制作步驟: STEP1:制作圖表源 在A1單元格輸入“數(shù)據(jù)源”,在A2:A101單元格區(qū)域輸入100個1,作為圖表的占位數(shù)據(jù); STEP2:選中A1:A101單元格區(qū)域,工具欄插入——圖表——環(huán)形圖,得到下面的圖表。 STEP3:完成比例 在C2單元格輸入任何一個完成比例值,譬如65%。 STEP4:錄入代碼 按ALT+F11,打開VBE界面,選擇圖表所在代碼區(qū); 然后,在代碼區(qū),復制粘貼下面的代碼: Private Sub Worksheet_Change(ByVal Target As Range) '''工作表單元格值改變觸發(fā)事件 If Target.Row = 2 And Target.Column = 3 Then '''如果Target行2列3,即C2單元格時,則 ActiveSheet.ChartObjects("圖表 1").Activate '''活動工作表的圖表1被激活 For i = 1 To 100 '''循環(huán)變量1-100,代表圖表的100個數(shù)據(jù)點 k = k + 1 '''計數(shù)器,計算當前的百分比值 ActiveChart.FullSeriesCollection(1).Points(i).Select '''根據(jù)變量i,逐個選中系列的數(shù)據(jù)點 If (k / 100) <= Round(ActiveSheet.[C2], 2) Then '''如果當前累計的百分比值,小于等于完成度的值(四舍五入到小數(shù)點后兩位) With Selection.Format.Fill '''操作被選擇的對象的格式 .ForeColor.RGB = RGB(77, 149, 179) '''填充色的RGB值為【77,149,179】 End With '''With結束語句 Else '''如果當前累計百分比值大于完成度的值 With Selection.Format.Fill .ForeColor.RGB = RGB(217, 217, 217) '''填充色的RGB值為【217,217,217】 End With End If '''If語句結束 Next i '''循環(huán)語句結束 ActiveSheet.[C2].Select '''從圖表的選中狀態(tài)中退出,選擇C2單元格 End If End Sub '''結束工程 現(xiàn)在,當我們改變C2單元格的百分比值,圖表就可以動態(tài)顯示了,是不是有點酷呢! 最后關閉保存的時候,記得要將EXCEL文件保存為.XLSM啟動宏的文件格式。 提示: 如果你在操作中發(fā)現(xiàn)改變C2數(shù)值后提示錯誤,不用慌張,問題很可能是當前的儀表盤圖表編號與代碼中的圖表編號不一致。此處的代碼中指定的圖表編號是圖表“1”。選中你的圖表,右擊鼠標,選擇“指定宏”命令,從彈出的 “指定宏”對話框中的宏名中可以看到當前圖表的編號。根據(jù)這個編號修改代碼中的編號即可解決問題。 研究了很久,也許是“思路卡住了”,但是我還是沒有想出這個圖表不用VBA的制作方法,如果大家有方法的話,歡迎評論留言分享學習一下。 另外對于圖表來說,適當讓大家也接觸一下VBA的做法,想不定哪天你用上了,也是好事一件嘛! 相關推薦: 八大查找函數(shù)公式,輕松搞定數(shù)據(jù)中的多條件查找 版權申明: 本文作者E圖表述;同時部落窩教育享有專有使用權。若需轉載請聯(lián)系部落窩教育。 |
|
來自: 部落窩教育BLW > 《部落窩excel/VBA》