【发布时间】:2019-08-21 11:41:01
【问题描述】:
我有 2 个 Excel 2007 PT-PT 工作表: 一个(sheet1)有多个要验证的列。 另一个 (base_valid) 有 5 列要验证。 我正在尝试使用宏验证“区域”(M2)列:
Sub Validar_Regioes()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition
Set rg = Range("M2", Range("M2").End(xlDown))
'clear any existing conditional formatting
rg.FormatConditions.Delete
'define the rule for each conditional format
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlExpression, "=COUNTIF(base_valid!$B$6:$B$10|M2)>0")
'define the format applied for each conditional format
With cond1
.Interior.Color = vbGreen
.Font.Color = vbWhite
End With
End Sub
这个想法是检查 M2 列中的区域是否与 base_valid 区域范围中的任何值匹配(base_valid!$B$6:$B$10) 调用宏时,我不断收到“无效的过程调用或参数”消息。
我做错了什么?
【问题讨论】:
-
"=COUNTIF(base_valid!$B$6:$B$10|M2)>0")不应该是"=COUNTIF(base_valid!$B$6:$B$10;M2)>0")你输入|而不是;(或者,如果你有英文版的Excel) -
尝试使用 , 和 ;我得到了同样的信息! :(
-
Set cond1 = rg.FormatConditions.Add(xlExpression, , "=COUNTIF(base_valid!$B$6:$B$10;M2)>0")怎么样?将 COUNTIF 替换为您使用 Excel 的任何语言的函数名称 -
这样我得到“参数不是可选的”
-
它非常适合我,你的 excel 是什么语言?另外,Excel中函数中参数的分隔符是什么?是
;还是,?并确保工作表base_valid存在并确保范围base_valid!$B$6:$B$10未合并且不包含任何错误
标签: excel vba conditional-formatting