![](/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.