如何根據儲存格顏色在Excel中為圖表著色?
當您在 Excel 中創建標準圖表(例如柱狀圖或條形圖)時,系列或數據點將被分配 Excel 的默認顏色,這可能與您的數據區域中的填色不相匹配。然而,在許多情境下——例如儀表板、報表或數據可視化——您希望圖表的柱狀圖能完全匹配應用於源儲存格的顏色。這有助於保持視覺一致性,使數據更容易一目了然地解釋,或者強化使用顏色作為含義線索的分類群組。例如,您可能希望圖表中的每個柱子都能反映總結表格中應用的顏色編碼,如下方截圖所示。Excel 並未提供直接內置的功能來自動映射儲存格填色(特別是手動設置的填色)到圖表元素中,因此需要幾種不同的方法,具體取決於儲存格顏色是手動應用還是基於公式或規則。下面提供了多種實用解決方案,以幫助您在各種情況下有效實現這種對應關係。
使用VBA代碼根據儲存格顏色為單個或多個數據系列著色
根據儲存格顏色為單個數據系列著色
如果您希望圖表的柱狀圖繼承其對應儲存格的填充顏色,並且您的顏色分配是手動應用的(不是通過條件格式或公式),您可以使用 VBA 將圖表柱的顏色與原始儲存格顏色同步。這種技術對於視覺匹配是清晰度或報告標準關鍵的單一系列圖表尤其有用。
1. 首先,選擇您的數據並創建一個條形圖或柱狀圖。要做到這一點,選擇相關的儲存格並點擊 插入 > 插入柱狀圖或條形圖。您應該會看到類似下方截圖的默認圖表:
2. 按 ALT + F11 打開 Microsoft Visual Basic for Applications (VBA) 編輯器。
3. 在 VBA 視窗中,點擊 插入 > 模組。然後,將以下代碼複製並粘貼到模組視窗中。這個腳本將更新每個圖表柱以匹配其對應儲存格的填充顏色。
VBA代碼:根據儲存格顏色為單個數據系列的圖表柱著色:
Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
Dim xChart As Chart
Dim I As Long, xRows As Long
Dim xRg As Range, xCell As Range
On Error Resume Next
Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
If xChart Is Nothing Then Exit Sub
With xChart.SeriesCollection(1)
Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
xRows = xRg.Rows.Count
Set xRg = xRg(1)
For I = 1 To xRows
.Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
Next
End With
End Sub
4. 輸入代碼後,按 F5 鍵運行宏。圖表柱現在應該反映出源儲存格的填充顏色,提供即時的視覺對應,如下方截圖所示:
此方法對於那些手動設置儲存格填充顏色且預期需要頻繁手動調整的圖表非常有利。但是請記住,如果儲存格顏色更改,您需要重新運行VBA以更新圖表,因為該聯繫不是動態的。此外,請記住將工作簿保存為啟用宏的文件(.xlsm),以便代碼得以保留。
根據儲存格顏色為多個數據系列著色
如果您的圖表包含多個數據系列(例如,幾個產品隨時間變化或不同類別),您可以使用類似的 VBA 方法將每個柱段或數據點映射到其源儲存格的填充顏色。這可以幫助您的報告在視覺上保持一致,並且讓觀眾能夠輕鬆地在工作表和圖表之間交叉參考數據。
1. 設置您的數據並創建多系列條形圖或柱狀圖,如下所示:
2. 按 ALT + F11 打開 VBA 編輯器。
3. 在 VBA 視窗中,點擊 插入 > 模組並粘貼以下代碼:
VBA代碼:根據儲存格顏色為多個數據系列的圖表柱著色:
Sub CellColorsToChart()
'Updateby Extendoffice
Dim xChart As Chart
Dim I As Long, J As Long
Dim xRowsOrCols As Long, xSCount As Long
Dim xRg As Range, xCell As Range
On Error Resume Next
Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
If xChart Is Nothing Then Exit Sub
xSCount = xChart.SeriesCollection.Count
For I = 1 To xSCount
J = 1
With xChart.SeriesCollection(I)
Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
If xSCount > 4 Then
xRowsOrCols = xRg.Columns.Count
Else
xRowsOrCols = xRg.Rows.Count
End If
For Each xCell In xRg
.Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
.Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
J = J + 1
Next
End With
Next
End Sub
4. 按 F5 鍵運行此代碼。您的圖表系列將更新以反映數據範圍內儲存格的填充顏色,如下圖所示:
- 代碼默認將圖表稱為 Chart1。請根據需要調整以匹配您的圖表實際名稱。
- 此方法也支持折線圖,不僅僅是條形圖或柱狀圖類型。
- 如果您遇到任何問題(例如沒有更新或錯誤),請檢查您的圖表數據系列和儲存格顏色範圍是否一一對應。
雖然此技術為手動著色的數據提供了完全的控制和靈活性,但它無法處理顏色通過條件格式或公式自動生成的情況。在這些情況下,請參閱以下基於公式的和條件格式解決方案以獲得更動態的選項。
根據儲存格顏色使用驚人功能為單個或多個數據系列著色
雖然 VBA 可以將圖表顏色與儲存格填充顏色同步,但需要手動運行代碼,並且一些用戶可能不習慣使用宏或 VBA 安全提示。如果您正在尋找更簡潔和互動的方法,Kutools for Excel 中的根據儲存格顏色改變圖表顏色 功能提供了一個高效的解決方案。無論您的圖表中有一個或多個數據系列,此工具都會自動將儲存格填充顏色應用於對應的圖表元素,即使您稍後更新儲存格顏色(簡單的重新應用即可刷新映射)。
安裝 Kutools for Excel 後,請按照以下步驟操作:
1. 插入您想要著色的圖表。選擇圖表,然後導航至 Kutools > 圖表 > 圖表工具 > 根據儲存格顏色改變圖表顏色,如下圖所示:
2. 當出現提示時,只需在出現的對話框中點擊 確定。
3. 圖表將立即更新以匹配您的儲存格顏色,如下方示例所示:
根據儲存格顏色為單個數據系列著色
根據儲存格顏色為多個數據系列著色
此功能非常適合需要定期自動匹配圖表顏色並希望無論數據更新與否都可重複使用的解決方案的人。與手動格式化或運行宏相比,它可以節省大量時間,特別是在多人編輯數據或圖表展示的合作環境中尤為有幫助。
更多相關圖表文章:
- 在Excel中創建覆蓋另一個柱狀圖的柱狀圖
- 當我們創建一個帶有兩個數據系列的集群柱狀圖或柱狀圖時,這兩個數據系列的柱子將並排顯示。但是,有時候,我們需要用疊加或重疊柱狀圖來更清楚地比較兩個數據系列。本文中,我將討論如何在Excel中創建重疊柱狀圖。
- 在Excel中複製一個圖表格式到其他圖表
- 假設您的工作表中有許多不同類型的圖表,您已經根據自己的需求格式化了一個圖表,現在您想將這個圖表格式應用到其他圖表上。當然,您可以手動逐一格式化其他圖表,但這將浪費很多時間,那麼是否有快速或便捷的方法可以在Excel中複製一個圖表格式到其他圖表呢?
- 在圖表中高亮最大和最小數據點
- 如果您有一個柱狀圖,您希望用不同的顏色高亮顯示最高或最小的數據點以突出它們,如以下截圖所示。您如何識別最高和最小的值,然後快速高亮顯示圖表中的數據點呢?
- 在Excel中創建階梯圖
- 階梯圖用於顯示在不規則間隔發生的變化,它是折線圖的擴展版本。但是,在Excel中沒有直接的方法來創建它。本文中,我將逐步談論如何在Excel工作表中創建階梯圖。
- 在Excel中創建進度條圖
- 在Excel中,進度條圖可以幫助您監控向目標的進度,如以下截圖所示。但是,您如何在Excel工作表中創建進度條圖呢?
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用