各位朋友,今天和你們分享Excel中顏色的一些基礎知識,詳見下面列表:
1、顏色索引值及其使用:ColorIndex;
2、顏色的RGB值;
3、顏色的RGB值與十進制值的相互轉換;
4、顏色的RGB值與16進制值的相互轉換;
5、顏色的中文名稱、英文名稱及其使用;
6、贈送的自定義函數演示效果及代碼;
一、顏色索引表
在Excel中,顏色索引為1~56,共56個,我們可以用下面的VBA代碼生成顏色索引和對應的顏色:
Sub 生成1至56號顏色()
Dim a%
For a = 1 To 56
Range("A" & a + 2) = a '列生成顏色索引代碼
Range("B" & a + 2).Interior.ColorIndex = a 'B列顯示對應的顏色
Next
End Sub
下面我們來看看顏色索引值是怎麼使用的:
1、在工作表中的使用
在工作表中,我們可以用於自定義格式來設置單元格格式(如下圖),我們可以用【[顏色1]~[顏色56]】來調用這56種顏色中的任意顏色(一定要加上中括號)。
上面的格式設置,使用了自定義格式中的四個區間,分別是:正數;負數;零;文本,每個區間用英文狀態的分號【;】分隔,設置每個區間的格式代碼,當單元格內容為相應格式時,顯示對應的格式的設置效果(如此例中的字體顏色效果),有點類似於條件格式。
2、在VBA代碼中的使用
我們也會用到用VBA代碼給單元格填充顏色,例如我在本節開始生成顏色填充的代碼。代碼中調用顏色索引值的是:
<code>Range("B" & a + 2).Interior.ColorIndex = a/<code>
即,當a=1時,單元格B3填充顏色3;…依次累加…;當a=56時,單元格B58填充顏色58。
注意:這裡用的是ColorIndex,要和後面以示區別。
二、顏色的RGB值
在Office2007及以上的版本中,支持了自定義顏色,即除了以上56種顏色外,可以設置和顯示更多的顏色。見下圖:
RGB是顏色三原色的縮寫:R(ed)紅色,G(reen)綠色,B(lue)藍色,每個顏色基色用8bit數據表示,即2^8=256色。通過設置RGB值,我們可以獲得256×256×256=16777216種顏色。這個常用於在工作表中對單元格底色、單元格字符顏色、單元格邊框顏色等的設置(在VBA中的使用,見下一節)。
給大家分享一個自定義函數,用於直接提取單元格填充色的RGB值
Function GetRGB(Rng As Range)
Application.Volatile '定製該函數為易失性函數
If Rng.Count > 1 Then
GetRGB = "請選擇單個單元格" '限制選取單個單元格
Else
Dim Cr, R, G, B '申明變量
Cr = Rng.Interior.Color '獲取單元格顏色值
R = Cr Mod 256 '計算顏色R值
G = (Cr - R) / 256 Mod 256 '計算顏色G值
B = (Cr - R - G * 256) / 256 ^ 2 '計算顏色B值
GetRGB = R & "," & G & "," & B '輸出RGB值
End If
End Function
請大家注意代碼中的這句:【Rng.Interior.Color】,與上面的【Range().Interior.ColorIndex】的區別:
①Interior.Color表示單元格的顏色值,即顏色的十進制值;
②Interior.ColorIndex表示單元格的顏色索引,即數字1~56。
在用VBA填充單元格顏色的時候,一定要注意Color和ColorIndex的區別。下面我給大家說說顏色的十進制值。
三、顏色RGB值與十進制值相互轉換
在上一節的代碼中,是把十進制的顏色值轉換為RGB的顏色值,那麼RGB的顏色值是怎麼轉換為十進制的顏色值的呢?公式如下:
<code>十進制顏色值=R×256^0+G×256^1+B×256^2/<code>
獲取十進制值的方法:①直接用代碼Interior.Color獲取;②通過上面的公式,用RGB值計算的來。
我們對單元格顏色填充的過程錄製一個宏。通過錄制的代碼,可以看出代碼中用的顏色值是十進制的,同樣我們可以把要填充的顏色,通過RGB值或十進制值,利用VBA代碼填充到單元格中(見下圖)。
四、顏色RGB值與的十六進制值相互轉換
這個在EXCEL中用得很少,主要給大家分享RGB顏色值與16進制的顏色代碼相互轉換的原理:
通過最前面的顏色索引表,可以看出16進制的顏色代碼由6個字符(除井號)組成,分為三組:1~2位是R顏色的代碼,3~4位是G顏色的代碼,5~6位是B顏色的代碼。轉換過程也比較簡單 ,用工作表內置的十進制轉16進制函數【DEC2HEX】,將10進制的R、G、B值分別轉化為16進制的R、G、B值(注意格式為兩位數),然後將R、G、B的16進制代碼按順序合併起來,再最前面加上井號。
16進制的顏色代碼,要轉換為RGB的值,用16進制轉10進制函數【HEX2DEC】反過來操作就可以了。
五、顏色中文、英文名稱及其使用
在Excel中,有部分顏色,可以直接使用名稱明細如下:.
可用中文名稱的顏色(7個):黑色、白色、紅色、綠色、藍色、黃色、洋紅;
可用英文名稱的顏色(8個):vbBlack、vbWhite、vbRed、vbGreen、vbBlue、vbYellow、vbMagenta、vbCyan。
1、中文名稱用在自定義格式中,詳見下圖
2、英文名稱用在VBA代碼中,詳見下圖
案例中,主要用單元格填充效果,是因為單元格填充顯示效果更明顯。能用於單元格底色的顏色代碼,同樣可以用於單元格中字體、單元格邊框、繪製的圖形線條和填充、圖表的顏色等。
既然說到顏色,很多人都有按顏色來對單元格進行計算的需求,今天贈送大家一個自定義函數,可以實現按顏色對數據進行求和、統計、合併。效果如下:
由於自定義代碼較多,單獨貼出來會影響閱讀效果,故直接截圖上傳的。有需要文中案例和代碼的朋友,可以關注我,然後用私信 發送關鍵字【顏色】就可以獲文中所有的資料和代碼(由於用的是VBA代碼,需要啟用宏才能正常使用)。
另外,在關於顏色計算上,你們還有比較好的建議或者問題,都可以在下面給我留言、討論。
好了,今天就到這裡,感謝各位朋友的關注和支持。
如果你喜歡我分享的內容,請點個贊支持下;
如果你覺得我分享的內容對你有幫助,可以關注我;
如果要看我以前分享過的好玩的內容,大家可以去我的主頁查看歷史文章。
閱讀更多 上班下班 的文章