![](/img/trans.png)
[英]Excel VBA check cell color with Activecell.Interior.color not working
[英]VBA - use color already select in Excel to fill cell interior
我知道如何將單元格的內部顏色設置為某種顏色,但是有沒有辦法讓它(即單元格顏色)默認為色帶顏色 window 中已經選擇的顏色?
我已經很晚了,但是由於它在谷歌搜索中彈出其他內容,我想我會提到選擇的答案是不正確的,當它說你不能做提交者想要的事情時。 您可以直接使用...激活控件
Application.CommandBars.ExecuteMso "CellFillColorPicker"
...它會將當前選定的顏色應用於選定的范圍。
我實際上正在環顧四周,看看是否有辦法通過 VBA 在控件庫中使用 select 另一種顏色,這樣我可以在第一次打開工作簿時設置默認的“無填充”而不是黃色。
你可以得到當前選擇的,但我希望它更容易..
這是基於@justpassingthrough 提供的代碼捕獲它的示例。
而不是 Debug.print - 您可以將值保存到全局變量中嗎?
Sub HiddenSheetGetColor()
Application.ScreenUpdating = False ' :: STOP SCREEN FLASHES
Dim HiddenSheetName As String ':: VARIABLE TO SHEET NAME
HiddenSheetName = Format(Now(), "__YYYYMMDD_HH_MM_SS_.00") ' TIMESTAMP FOR SHEET SO IT'LL NEVER DUPLICATE
Worksheets.Add.Name = HiddenSheetName ' CREATE NEW SHEET AND SET NAME TO TIMESTAMP REFERENCED ABOVE
Sheets(HiddenSheetName).Select 'SELECT IT
Range("A1").Select 'SELECT A CELL
Application.CommandBars.ExecuteMso "CellFillColorPicker" ' APPLY CURRENT TOOLBAR 'FILL' COLOUR TO CELL
Debug.Print Range("A1").Interior.Color ' :: PRINT THIS VALUE TO LOG/IMMEDIATE WINDOW ::
Application.DisplayAlerts = False ' :: STOP ERROR WHEN DELETING SHEET
Sheets(HiddenSheetName).Delete ' :: DELETE SHEET
Application.DisplayAlerts = True ' :: ALLOW ERROR WHEN DELETING SHEET
Application.ScreenUpdating = True ' :: UPDATE SCREEN AGAIN!
End Sub
恐怕你不能
無論如何,您可以使用以下代碼使用自定義調色板:
modColorFunctions 模塊包含一個名為 ChooseColorDialog 的 function,它將顯示一個 Windows 顏色選擇器對話框並返回 RGB Long 顏色值。 如果用戶取消對話框,結果為 -1。 例如,
Dim RGBColor As Long
Dim Default As Long
Default = RGB(255, 0, 255) 'default to purple
RGBColor = ChooseColorDialog(DefaultColor:=Default)
If RGBColor < 0 Then
Debug.Print "*** USER CANCELLED"
Else
Debug.Print "Choice: " & Hex(RGBColor)
End If
摘自http://www.cpearson.com/Excel/Colors.aspx的“顯示顏色選擇器對話框”一章
您需要添加顏色模塊才能使其工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.