シート2に列「C」があり、100行目まで3つの標準値(はい、いいえ、NA)を言うことができます。Sheet1 列 G5 & G6 で、次の条件に基づいて結果を出力したいと思います。条件 1- Sheet2 列 C のすべての値が Yes/NA の場合、出力値は G5 で YES で、背景色は緑色で、NO が存在する場合、値は G6 で NO と赤色である必要があります。条件 2- Sheet2 列 C のすべての値が No/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 に答える