首页 文章

如何使用数组而不是在中使用 And

提问于
浏览
0

我有 4-5 条条件,因此数组中是否可以使用任何选项和条件。那么有没有其他选择或必须做类似以下的事情?

For Each c In rng
If c.Value <> "A" And c.Value <> "B" And c.Value <> "C" Then
 dic(c.Value) = c.Value
End If
Next c

谢谢

2 回答

  • 0

    您的问题需要更多的上下文,这很难提供一个好的答案。我所能想到的是:

    • 您也可以使用Switch来做到这一点,但是您仍然可以应用与if相同的逻辑。

    • 您可以将filter应用于您的范围,这样既不包含 A,B,C,又可以避免在循环内使用If

    • 如果您想使其更短但更易读(出于我不建议这样做的原因),则可以将 c 转换为 ASCII,然后知道 A-C 是连续的,您可以看看该值是否不在该值之间。对应于 A-C。我猜如果您有更多的案件(并且仍然是连续的信件)可能还不错。

  • 0

    当然可以,但可能不是更多的 cleaner/easier:如果array的元素是 A,B 和 C,则可以使用与此 pseudo-code 类似的代码:

    For Each c In rng
        For each element in array
            If c.value <> array(element) Then count = count + 1 'how many times it is true
            End If
        Next element
        If count = NumberOfElementsOf(array) Then do your stuff with c
    Next c
    

    但是,如果您有很多标准,可能会更好。当然可以优化 e.g. 如果您检查相反的条件,并且确实如此,则退出循环-您可以发现不同的机会。

相关问题