我正在用 Excel 为我的团队创建值班名单。方法是,假设全年是一个工作簿,每个月都在一个单独的工作表上。到目前为止,我使用的是 Excel 给定的条件格式,但我必须为每个月/表一次又一次地重做。在列表中,我无法弄清楚如何简单地将它们复制到新工作表中。所以;我现在正在尝试创建一个简单的 WBA 代码,该代码适用于整个工作簿、每张工作表。当单元格中写入特定字母或数字时,我希望某些单元格填充定义的颜色。
我编写了这段代码,但现在遇到了标题中描述的问题。请您查看我的代码(我将其粘贴在下面)并帮助我解决它,或者如果您发现其中有任何其他错误,请告诉我:
Option Explicit
Sub EasyColors()
Dim wb As Workbook
Dim lrow As Long
Dim rng As Range
Set wb = ThisWorkbook
With wb
lrow = .Range(("C:AG") & .Rows.Count).End(xlUp).Row
Set rng = .Range("C7:AG41")
End With
With rng
.FormatConditions.Add Type:=xlCellValue, Operator:=xl.Equals, Formula1:="D"
.FormatConditions.Add .Interior.Color = RGB(180, 198, 231)
End With
End Sub
FormatConditions.Add
的文档:参数Operator
必须是此处列出的值之一。
你只是在常数上有一个拼写错误。你写的是Operator:=xl.Equals
,但一定是
Operator:=xlEqual
。如果使用
Debug->Compile
,VBA编辑器将直接跳转到无效值。