Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA如果range.value=某个值,则_Excel_If Statement_Range_Vba - Fatal编程技术网

Excel VBA如果range.value=某个值,则

Excel VBA如果range.value=某个值,则,excel,if-statement,range,vba,Excel,If Statement,Range,Vba,我要找的是这个- 如果单元格范围内的一个值等于某个值或相同的值,那么它应该显示“正”或“负”- If range("F3:H5").value = "X" then Msgbox "Positive result" else Msgbox "Negative result" end if 您将需要以下内容: Dim found As Boolean found = False For Each cell In Range("F3:h5").Cells if cell.Value

我要找的是这个-

如果单元格范围内的一个值等于某个值或相同的值,那么它应该显示“正”或“负”-

If range("F3:H5").value = "X" then

Msgbox "Positive result"

else

Msgbox "Negative result"

end if

您将需要以下内容:

Dim found As Boolean
found = False
For Each cell In Range("F3:h5").Cells
    if cell.Value = "X" Then
        found = True
    end if
Next

If found = True Then
    Msgbox "Positive result"
else
    Msgbox "Negative result"
End if

你可以使用这个功能

    Function EvalRange(inRng As Range, inVal As Variant) As Variant

    Dim CntAll, CntMatch As Double

    CntAll = Application.Count(inRng)
    CntMatch = Application.CountIf(inRng, inVal)

    If CntAll = CntMatch Then
        EvalRange = "Positive Result"
        Else: EvalRange = "Negative Result"
    End If

    End Function
由于有两个外引号,“X”双引号

F3:H5=”“X“”是一个布尔结果数组F3=X、F4=X等

--负值将布尔值变为0/1;另一个负值“返回”为1/0


IIf,Evaluate,SUMPRODUCT…函数。对不起,GIYF。

它应该用于以下目的:

Sub string_validation()

    Dim cel As Range

    For Each cel In Range("F3:H8")
        If cel.Value = "hassle" Then
            MsgBox "Positive result"
        Else
            MsgBox "Negative result"
        End If
    Next cel

End Sub

谢谢,但是我有多个不能在循环中运行的范围。有没有一种方法可以让我直接验证它?没有任何循环我不这么认为。这回答了问题,正如它所说的那样。For/Next循环是一个微不足道的额外代码来完成这项工作。注意:我没有添加任何错误/异常处理,因为解决方案只是简单而已例如,假设用户将为此目的进行必要的更改。这不是编写应用程序函数的正确语法。例如,Application.count。请尝试此操作以查看结果。我故意避免使用“Worksheetfunction”和“used”应用程序“使用该功能。简而言之,类似于Application.Count的语句比Worksheetfunction更稳定。Count“It throws an error”没有帮助。“它抛出了一个类型不匹配错误”给了我们更多的东西来处理。如果你解释一下你的代码会更好。欢迎来到StackOverflow。通常,最好解释一个解决方案,而不是仅仅发布几行匿名代码。你可以阅读,也可以阅读。
Sub string_validation()

    Dim cel As Range

    For Each cel In Range("F3:H8")
        If cel.Value = "hassle" Then
            MsgBox "Positive result"
        Else
            MsgBox "Negative result"
        End If
    Next cel

End Sub