This is one way. There
Option Explicit
Sub If_Compare()
'This will compare the input values for Pass/Fail Resultant'
With ActiveSheet
.Range("B4").Value = IIf(Len(.Range("B3")) > 0, IIf(.Range("B3").Value >= 0.6, "Pass", "Fail"), "")
.Range("C4").Value = IIf(Len(.Range("C3")) > 0, IIf(.Range("C3").Value <= 3.5, "Pass", "Fail"), "")
.Range("D4").Value = IIf(Len(.Range("D3")) > 0, IIf(.Range("D3").Value <= 6#, "Pass", "Fail"), "")
.Range("E4").Value = IIf((.Range("B4").Value = "Pass") And (.Range("B4").Value = "Pass") And (.Range("B4").Value = "Pass"), "Pass", "Fail")
End With
End Sub
A slightly more wordy, but more straight-forward, way
Sub If_Compare_Alt()
Dim n As Long
With ActiveSheet
If Len(.Range("B3")) = 0 Then
.Range("B4").Value = vbNullString
ElseIf .Range("B3").Value >= 0.6 Then
.Range("B4").Value = "Pass"
n = n + 1
Else
.Range("B4").Value = "Fail"
End If
If Len(.Range("C3")) = 0 Then
.Range("C4").Value = vbNullString
ElseIf .Range("C3").Value <= 3.5 Then
.Range("C4").Value = "Pass"
n = n + 1
Else
.Range("C4").Value = "Fail"
End If
If Len(.Range("D3")) = 0 Then
.Range("D4").Value = vbNullString
ElseIf .Range("D3").Value < 6# Then
.Range("D4").Value = "Pass"
n = n + 1
Else
.Range("D4").Value = "Fail"
End If
If n = 3 Then
.Range("E4").Value = "Pass"
Else
.Range("E4").Value = "Fail"
End If
End With
End Sub