Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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 如何轻松地将值与范围内的其他值进行比较_Excel_Vba - Fatal编程技术网

Excel 如何轻松地将值与范围内的其他值进行比较

Excel 如何轻松地将值与范围内的其他值进行比较,excel,vba,Excel,Vba,有人能帮忙吗,如何以更聪明的方式重写下面的条件(当然更短) 它应该说:如果一个特定单元格中的值不是空的,同时与X32到X47单元格中的任何值都不同→ 做点什么 非常感谢 For i = 4 To 69 If Range(SO_COLUMN & i) <> "" _ And Range(SO_COLUMN & i) <> Range("X32") And Range(SO_COLUMN & i) <> Range(

有人能帮忙吗,如何以更聪明的方式重写下面的条件(当然更短)

它应该说:如果一个特定单元格中的值不是空的,同时与X32到X47单元格中的任何值都不同→ 做点什么

非常感谢

For i = 4 To 69
    If Range(SO_COLUMN & i) <> "" _
        And Range(SO_COLUMN & i) <> Range("X32") And Range(SO_COLUMN & i) <> Range("X33") And Range(SO_COLUMN & i) <> Range("X34") And Range(SO_COLUMN & i) <> Range("X35") _
        And Range(SO_COLUMN & i) <> Range("X36") And Range(SO_COLUMN & i) <> Range("X37") And Range(SO_COLUMN & i) <> Range("X38") And Range(SO_COLUMN & i) <> Range("X39") _
        And Range(SO_COLUMN & i) <> Range("X40") And Range(SO_COLUMN & i) <> Range("X41") And Range(SO_COLUMN & i) <> Range("X42") And Range(SO_COLUMN & i) <> Range("X43") _
        And Range(SO_COLUMN & i) <> Range("X44") And Range(SO_COLUMN & i) <> Range("X45") And Range(SO_COLUMN & i) <> Range("X46") And Range(SO_COLUMN & i) <> Range("X47") Then

            "DO SOMETHING"
    End If
Next i
用于i=4到69
如果范围(SO_列&i)”“_
和范围(SO列和i)范围(“X32”)和范围(SO列和i)范围(“X33”)和范围(SO列和i)范围(“X34”)和范围(SO列和i)范围(“X35”)_
和范围(SO列和i)范围(“X36”)和范围(SO列和i)范围(“X37”)和范围(SO列和i)范围(“X38”)和范围(SO列和i)范围(“X39”)_
和范围(SO列和i)范围(“X40”)和范围(SO列和i)范围(“X41”)和范围(SO列和i)范围(“X42”)和范围(SO列和i)范围(“X43”)_
和范围(SO列和i)范围(“X44”)和范围(SO列和i)范围(“X45”)和范围(SO列和i)范围(“X46”)和范围(SO列和i)范围(“X47”)
“做点什么”
如果结束
接下来我
可能类似于:

With ThisWorkbook.Worksheets("yourSheetName")
    For i = 4 To 69
        If Not IsEmpty(.Range(SO_COLUMN & i)) And IsError(Application.Match(.Range(SO_COLUMN & i), .Range("X32:X47"), 0)) Then
            'do something
        End If
    Next
End With
可能是这样的:

With ThisWorkbook.Worksheets("yourSheetName")
    For i = 4 To 69
        If Not IsEmpty(.Range(SO_COLUMN & i)) And IsError(Application.Match(.Range(SO_COLUMN & i), .Range("X32:X47"), 0)) Then
            'do something
        End If
    Next
End With

@K.Dᴀᴠ这太好了。谢谢,“IsEmpty”部分不起作用,所以我用原始范围(so_COLUMN&i)”替换了它,其余部分工作正常。非常感谢:)不客气。你的单元格里有公式吗?您可以使用vbNullString进行比“”更快的比较。您完全正确,我确实有公式。我在你推荐时进行了调整,效果很好:)再次感谢你。@K.Dᴀᴠ这太好了。谢谢,“IsEmpty”部分不起作用,所以我用原始范围(so_COLUMN&i)”替换了它,其余部分工作正常。非常感谢:)不客气。你的单元格里有公式吗?您可以使用vbNullString进行比“”更快的比较。您完全正确,我确实有公式。我在你推荐时进行了调整,效果很好:)再次感谢你。