我在 sheet2 中有一个“C”列,它可以有 3 个标准值说(是,否,NA)直到第 100 行。现在在 Sheet1 列 G5 和 G6 中,我想根据以下条件输出结果。条件 1- 如果 Sheet2 C 列中的所有值都是 Yes/NA,则 G5 中的输出值应为 YES,背景为绿色,如果存在任何 NO,则 G6 中的值应为 NO 和红色。条件 2 - 如果 Sheet2 列 C 中的所有值均为否/NA,则 G6 中的输出值应为 NO,背景为红色。
问问题
1072 次
1 回答
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
一位看着我肩膀的朋友指出,如果所有条目都是“NA”,那么这两个条件都可能是真的!
于 2013-09-26T20:21:45.320 回答