我想使用公式或VGA在Excel工作表中獲取單元格的背景顏色。 我發現這個UDF:獲取Excel單元格背景顏色十六進制值
Public Function BColor(r As Range) As Long
BColor = r(1).Interior.ColorIndex
End Function
它可以用於像這樣的小區:=BColor(A1)
我不熟悉VGA,它返回一些長期價值,我不知道是否有可能獲得十六進制值直。謝謝!
我想使用公式或VGA在Excel工作表中獲取單元格的背景顏色。 我發現這個UDF:獲取Excel單元格背景顏色十六進制值
Public Function BColor(r As Range) As Long
BColor = r(1).Interior.ColorIndex
End Function
它可以用於像這樣的小區:=BColor(A1)
我不熟悉VGA,它返回一些長期價值,我不知道是否有可能獲得十六進制值直。謝謝!
試試這個
Function HexCode(Cell As Range) As String
HexCode = Right("000000" & Hex(Cell.Interior.Color), 6)
End Function
我想上面的代碼,但它返回的BGR值(建議)
但是,此代碼返回一個RGB十六進制值。 我只是不能讓它自動更新。
Public Function HexCodeRGB(cell As Range) As String
HexCodeBGR = Right("000000" & Hex(cell.Interior.Color), 6)
HexCodeRGB = Right(HexCodeBGR, 2) & Mid(HexCodeBGR, 3, 2) & Left(HexCodeBGR, 2)
End Function
好運
基於最佳投答案,這裏是一個真實的案例,我的情況的一個例子。 我提供它作爲一個宏和一個截圖。我希望這可以幫助別人。
VBA宏很簡單,但我會粘貼在這裏。如果你看看附件,你會看到,我已重複該列西班牙語清除顏色名稱和列標題爲「色」時,我並運行此宏:
Sub printHEXBGColor()
Set r = Range("myRange")
Dim HEXcolor As String
Dim i As Long
For i = 1 To r.Rows.Count
r.Cells(i, 1).Activate
HEXcolor = "#" + Right("000000" & Hex(ActiveCell.Interior.Color), 6)
ActiveCell = HEXcolor
Next i
End Sub
爲什麼要投票? :-s –
可能會導致只用不到10秒就可以找到您的問題的答案使用谷歌 – 2014-02-06 08:54:49
我沒有downvote你,但我想這是因爲缺乏研究。你有沒有搜索谷歌如何在VBA中將Long Value轉換爲Hex?有很多例子。 –