运行时错误13types不匹配的条件格式

我有代码:

Dim Formul1 As String Dim Formul2 As String Formul2 = "=AND(R[1]C<=R[1]C[-1];(R[1]C+7)>R[1]C[-1])" **Formul1 = Application.ConvertFormula(Formula:=Formul2, fromreferencestyle:=xlR1C1, toreferencestyle:=xlA1)** With Range("$H$6:$FH$50") .FormatConditions.Delete .FormatConditions.Add Type:=xlExpression, Formula1:=Formul1 .FormatConditions(1).Interior.ColorIndex = 3 End With 

它给了我一个错误,在突出的地方运行时错误13types不匹配的条件格式,我不知道为什么,有什么想法?

问题Formul2中,更改AND条件..使用逗号而不是分号..应该罚款。

 Formul2 = "=AND(R[1]C<=R[1]C[-1],(R[1]C+7)>R[1]C[-1])" 

除了当您的实际系统使用逗号时,您的Formul2使用分号作为系统列表分隔符,您也将不得不实现ConvertFormula方法的RelativeTo参数。 不pipe在工作表上的什么位置,具有相对单元格引用的xlR1C1样式公式看起来都是完全相同的。 但是,xlA1样式会根据它的位置而变化。

你试图完成的本质并不完全清楚,但我会做一个聪明的猜测,你需要使用RelativeTo:= Range(“H6”),因为H6是你CF规则的左上angular单元格的应用:

 Formul1 = Application.ConvertFormula(Formula:=Formul2, fromreferencestyle:=xlR1C1, toreferencestyle:=xlA1, RelativeTo:=Range("H6")) 

也许你可能想locking那个范围的列引用适用于:这样只有列G和H被考虑,但是你将不得不在这方面validation你的意图。

FWIW,在使用它创build或修改FormatConditions集合对象之前,您不必将xlR1C1样式公式更改为xlA1样式。 任何一种风格都被接受。