我经常需要在我的Excel工作表上创建条件格式规则,而不是总是在相同的范围内,以根据所写的内容格式化文本颜色。
最常见的情况是将范围内的所有单元格设置为“有效”绿色和粗体,“无效”为红色和粗体。
我尝试使用Developer选项卡上的Record Macro功能创建此宏,但它不起作用,代码为空。
由于我对VBA一无所知,我想知道是否有人可以帮我创建这个宏。
说明:
[解决]
Sub EffectiveNot()
'
' EffectiveNot Macro
'
Dim rStart As Range
Set rStart = Selection
Selection.FormatConditions.Add Type:=xlTextString, String:="Effective", _
TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -11489280
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlTextString, String:="Not effective", _
TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16776961
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub
答案 0 :(得分:1)
您是否有机会查看ThisWorkbook
- 模块?宏录制器每天运行一个新的空模块,然后将代码转储到那里......
这基本上是宏记录器在我清理了一下之后想出来的。您可以随意将Selection
交换为更适合您使用的范围对象。
Option Explicit
Sub format()
With Selection
With .FormatConditions
.Delete
With .Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Not Effective""")
With .Font
.Color = vbRed
.Bold = True
End With
.StopIfTrue = False
End With
With .Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Effective""")
With .Font
.Color = vbGreen
.Bold = True
End With
.StopIfTrue = False
End With
End With
End With
End Sub