2013-09-26 93 views
0

我在sheet2中有一個列「C」,它可以有3個標準值表示(是,否,NA),直到第100行爲止。現在在Sheet1列G5 & G6中,我想根據以下條件輸出結果。條件1 - 如果Sheet2 Column C中的所有值均爲Yes/NA,則G5中的輸出值應爲YES,且背景爲綠色,如果有任何NO,則G6中的值應爲NO和紅色。 條件2 - 如果Sheet2 Column C中的所有值都是No/NA,則G6中的輸出值應該爲背景紅色的NO。Excel宏:使用excel VBA檢查數據和着色

+0

兩個步驟是找出一個公式 - 嘗試'COUNTIFS' - 計算「是」或「否」部分,然後將條件格式應用於該單元格。不需要VBA。 –

+0

你可以在上面提到的標準中提出公式,我應該在哪裏提出該公式。對不起,我不熟悉Excel公式和條件格式。 – sandesh

+0

@DougGlancy:請你詳細說明並幫助我。 – sandesh

回答

0

這給一試:

Sub YesNoCheck() 
    Dim s1 As Worksheet, s2 As Worksheet 
    Dim rCheck As Range 
    Set s1 = Sheets("Sheet1") 
    Set s2 = Sheets("Sheet2") 
    Dim wf As WorksheetFunction 
    Set wf = Application.WorksheetFunction 
    Set rCheck = s2.Range("C1:C100") 
    s1.Range("G5:G6").Clear 
    If wf.CountIf(rCheck, "No") = 0 Then 
     s1.Range("G5").Value = "Yes" 
     s1.Range("G5").Interior.ColorIndex = 10 
     Exit Sub 
    End If 
    If wf.CountIf(rCheck, "Yes") = 0 Then 
     s1.Range("G6").Value = "No" 
     s1.Range("G6").Interior.ColorIndex = 3 
    End If 
End Sub 

編輯#1

我的錯誤,而不是使用:

Sub YesNoCheck2() 
    Dim s1 As Worksheet, s2 As Worksheet 
    Dim rCheck As Range 
    Set s1 = Sheets("Sheet1") 
    Set s2 = Sheets("Sheet2") 
    Dim wf As WorksheetFunction 
    Set wf = Application.WorksheetFunction 
    Set rCheck = s2.Range("C1:C100") 
    s1.Range("G5:G6").Clear 
    If wf.CountIf(rCheck, "Yes") + wf.CountIf(rCheck, "NA") = 100 Then 
     s1.Range("G5").Value = "Yes" 
     s1.Range("G5").Interior.ColorIndex = 10 
    End If 
    If wf.CountIf(rCheck, "No") + wf.CountIf(rCheck, "NA") = 100 Then 
     s1.Range("G6").Value = "No" 
     s1.Range("G6").Interior.ColorIndex = 3 
    End If 
End Sub 

看在我的肩膀上有朋友指出,如果所有條目是「不適用」,那麼這兩個條件可能是真的!

+0

完美謝謝@加里的 – sandesh