2016-07-15 134 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