我的Excel条件格式化公式手动工作但不在VBA中编码

时间:2016-07-15 21:04:08

标签: excel vba excel-vba excel-formula

我在"条件格式"中手动创建了这个公式。图形界面

=IF(AND($M7<>""SpecificDeparment"",NOT(ISBLANK($O7))),TRUE)

它应该验证只有一个某个部门接受一个I​​D,其他人不能有一个id,用RED填充错误ID单元格,手动完美无缺,我将公式替换为RC格式

=IF(AND(RC[-2]<>""SpecificDeparment"",NOT(ISBLANK(RC))),TRUE)

它运行并且对Worksheet没有任何影响,但是如果我只允许一个条件(例如:=IF($RC[-2]<>""SpecificDeparment"",TRUE) 它可以工作并更改我的列填充颜色。

以下是我用于在VBA中分配格式的代码:

With .Range(wrkbook.Sheets("Data").Cells(FirstRow, .Range("ID_Marker").Column), wrkbook.Sheets("Data").Cells(LastRow, .Range("ID_Marker").Column))

 .FormatConditions.Add Type:=xlExpression, Formula1:="=IF(AND(RC[-2]<>""SpecificDeparment"",NOT(ISBLANK(RC))),TRUE)"

    .FormatConditions(.FormatConditions.Count).SetFirstPriority
       With .FormatConditions(1)
        .Font.ColorIndex = MustFixDataFontColor
            .Font.Bold = MustFixDataFontBold
            .Interior.ColorIndex = 3
            .StopIfTrue = False
        End With

   End With
        DoEvents

1 个答案:

答案 0 :(得分:1)

顶部的公式来自您的excel公式,下面的公式是将vba公式放入msgbox时生成的代码

formula comparison