Excel動態儀表盤圖表:VBA代碼控制顏色變換
編按:今天來給大家分享一個隨着數字變化儀表刻度顏色自動變化的動態儀表盤圖。教程中會用到一段VBA循環語句。感興趣的同學趕緊學起來吧!
今天要介紹給大家的圖表叫“刻度顏色動態變化儀表盤圖”,大概長成下面這樣子!
這個圖表的使用環境,是完成度、進度、佔比類型的數據可視化展示。
初看這個圖表,感覺很簡單是吧?沒有過多的輔助數值,也沒有過多的操作,根據數據的變化而刻度指示顏色發生變化是它唯一的特色。用刻度顏色變化取代了普通儀表盤圖表中的指針。
看着簡單,但作者研究了半天,卻只能想到用VBA來做。
下面就是製作步驟:
STEP1:製作圖表源
在A1單元格輸入“數據源”,在A2:A101單元格區域輸入100個1,作爲圖表的佔位數據;
STEP2:選中A1:A101單元格區域,工具欄插入——圖表——環形圖,得到下面的圖表。
STEP3:完成比例
在C2單元格輸入任何一個完成比例值,譬如65%。
STEP4:錄入代碼
按ALT+F11,打開VBE界面,選擇圖表所在代碼區;
然後,在代碼區,複製粘貼下面的代碼:
Private Sub Worksheet_Change(ByVal Target As Range) '''工作表單元格值改變觸發事件
If Target.Row = 2 And Target.Column = 3 Then '''如果Target行2列3,即C2單元格時,則
ActiveSheet.ChartObjects("圖表 1").Activate '''活動工作表的圖表1被激活
For i = 1 To 100 '''循環變量1-100,代表圖表的100個數據點
k = k + 1 '''計數器,計算當前的百分比值
ActiveChart.FullSeriesCollection(1).Points(i).Select '''根據變量i,逐個選中系列的數據點
If (k / 100) <= Round(ActiveSheet.[C2], 2) Then '''如果當前累計的百分比值,小於等於完成度的值(四捨五入到小數點後兩位)
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 '''循環語句結束
ActiveSheet.[C2].Select '''從圖表的選中狀態中退出,選擇C2單元格
End If
End Sub '''結束工程
現在,當我們改變C2單元格的百分比值,圖表就可以動態顯示了,是不是有點酷呢!
最後關閉保存的時候,記得要將EXCEL文件保存爲.XLSM啓動宏的文件格式。
提示:
如果你在操作中發現改變C2數值後提示錯誤,不用慌張,問題很可能是當前的儀表盤圖表編號與代碼中的圖表編號不一致。此處的代碼中指定的圖表編號是圖表“1”。選中你的圖表,右擊鼠標,選擇“指定宏”命令,從彈出的 “指定宏”對話框中的宏名中可以看到當前圖表的編號。根據這個編號修改代碼中的編號即可解決問題。
研究了很久,也許是“思路卡住了”,但是我還是沒有想出這個圖表不用VBA的製作方法,如果大家有方法的話,歡迎評論留言分享學習一下。
另外對於圖表來說,適當讓大家也接觸一下VBA的做法,想不定哪天你用上了,也是好事一件嘛!
做Excel高手,快速提升工作效率,部落窩教育《一週Excel直通車》視頻和《Excel極速貫通班》直播課全心爲你!
學習交流請加微信hclhclsc進羣。
如何用氣泡圖做一個多維對比圖表?超詳細教程!
Excel教程:如何製作帶有層次和透視感的圖表?
Excel教程:如何製作帶有層次和透視感的圖表?
八大查找函數公式,輕鬆搞定數據中的多條件查找
版權申明:
本文作者E圖表述;同時部落窩教育享有專有使用權。若需轉載請聯繫部落窩教育。