2016-07-15 99 views
2

手动而不是编码我在“条件格式”的图形界面手动创建这个公式我的Excel条件格式公式工作在VBA

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

应该验证只有一个某个部门接受一个I​​D,其他人不得有一个id,填充错误ID细胞与红色,则手动的工作完全没有问题,我更换了公式到RC格式

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

它运行,使到工作表没有什么区别,但如果我只让一个条件(例如:=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 
+2

'我知道公式是好的 - - 它是真的吗? R1C1不使用美元。 – GSerg

+0

当我把你的公式丢在msgbox中时,在特定的部门中缺少引号,只有一组引用的引号,即“specificdepartment” – Lowpar

+0

' SpecificDeparment'似乎是“SpecificDepartment”的拼写错误。 – halfer

回答

1

在上面的公式是从你的Excel公式,下面的公式生成的代码时,VBA公式放入msgbox

formula comparison