我正在尝试编写一个允许我在字体颜色之间切换的宏。为了简单起见,我们只说两种字体颜色。从黑色到蓝色或从蓝色到黑色。
但是,我想excel告诉我的宏是否已经选择了黑色或蓝色字体(无论是在当前单元格中还是只是一般)。从那里,确定要改变的颜色。
因此,如果工具栏上的字体颜色选择为黑色,则会运行将字体更改为蓝色(通过运行以下脚本的相应部分)。如果工具栏上的字体颜色选择为蓝色,它将运行将字体更改为黑色(通过运行以下脚本的相应部分)。
下面,我有将字体颜色更改为蓝色或黑色的代码。 这里的问题是我不知道正确的语法或代码让excel确定工具栏上的当前选定的字体颜色(或单元格,如果在工具栏上执行此操作是不可能的)。确定字体颜色是宏的第一部分,这是我遇到的麻烦。
感谢帮助!
Sub toggle()
'need code to determine font color, then to execute appropriate code below
With Selection.font
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0
End With
Exit Sub
blackpath:
With Selection.font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
End Sub
答案 0 :(得分:1)
来自@SeanC:
Sub toggle()
With Selection.font
If .ThemeColor = xlThemeColorLight1 Then
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0
ElseIf .ThemeColor = xlThemeColorAccent1 Then
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End If
End With
End Sub
答案 1 :(得分:1)
这是一种找出按钮
中选择了哪种颜色的方法虽然
是一个kludgeOption Explicit
Sub test()
Dim aaa As Long
Dim fontColorButton As Long
aaa = Range("a1").Font.Color
Range("a1").Select
Application.CommandBars.ExecuteMso ("FontColorPicker") ' click the "font color" button
' get the command name from the "customize ribbon" dialog
fontColorButton = Range("a1").Font.Color
Range("a1").Font.Color = aaa
Debug.Print fontColorButton
End Sub
答案 2 :(得分:0)
我能想到的唯一方法就是使用Workbook_SheetChange
来获取当前的字体颜色。
Option Explicit
Dim CurCol As Long ' default is: -16776961 you could set this on Workbook_Open
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
CurCol = Target.Font.Color
End Sub