Excel 运行时错误5以编程方式应用条件格式时过程调用或参数无效
如果满足指定的条件,我将尝试对B列和C列中的单元格应用不同的颜色。我有两个公式Excel 运行时错误5以编程方式应用条件格式时过程调用或参数无效,excel,vba,Excel,Vba,如果满足指定的条件,我将尝试对B列和C列中的单元格应用不同的颜色。我有两个公式 如果B不为空且G中的对应单元格不为空 如果C不为空且G中的对应单元格不为空 我在函数中得到一个无效的过程错误r.FormatConditions.Add Xexpression,公式1:=公式 我做错了什么 请参阅下面的代码: Public Sub applyColor() Dim ws As Worksheet, thisWs As Worksheet Dim myRangeB As R
Public Sub applyColor()
Dim ws As Worksheet, thisWs As Worksheet
Dim myRangeB As Range
Dim myRangeC As Range
Dim lastRow As Long
Set thisWs = ActiveSheet
setSheets
With ActiveSheet 'delete conditional formatting
.Range("B:C").FormatConditions.Delete
lastRow = .Range("A" & Rows.Count).End(xlUp).Row
Set myRangeB = .Range("B2:B" & lastRow) 'The range to be formatted
Set myRangeC = .Range("C2:C" & lastRow)
End With
For Each ws In ThisWorkbook.Worksheets
If ws.name = wsColon.name Or ws.name = wsLung.name Or ws.name = wsMela.name Then
ws.Activate
Call FormatRange(myRangeB, 3, "=AND(NOT(ISBLANK($B1)),NOT(ISBLANK($G1)))")
Call FormatRange(myRangeC, 29, "=AND(NOT(ISBLANK($C1)),NOT(ISBLANK($G1)))")
End If
Next
thisWs.Activate
End Sub
Public Sub FormatRange(r As Range, colorIndex As Integer, formula As String)
r.FormatConditions.Add xlExpression, Formula1:=formula
r.FormatConditions(r.FormatConditions.Count).Interior.colorIndex = colorIndex
End Sub
感谢您的帮助我意识到您的本地设置需要一个
在公式中使用code>代替,
,但在vba中必须使用,
。尝试更换代码>带,
的分隔符。感谢您的建议,现在代码将执行;但是,条件格式未按预期工作。它突出显示空白单元格,我希望在新数据输入到B列和C列后看到颜色变化,但它不会改变颜色。我在B和C中有数据验证下拉列表,我不确定它是否会影响条件格式。你知道吗?主要的问题是它没有循环通过结肠、肺和黑色素瘤。它仅将格式化应用于Activesheet
。这是因为您在循环之前设置了Activesheet的范围。在调用sub之前,您需要重新选择循环中的范围。将您的with
块放在ws之后。激活
。是的,我知道了,谢谢!