Excel VBA 相交

Excel VBA Intersect

我在网上找到了这段代码,显然它适用于其他人但不适用于我?我不知道哪里错了。我做了一个简单的例子,让我的 Range1 和 Range 2 成为 excel、

中的某些单元格

此外,我想知道是否有办法 return 交叉路口,如果可以的话。提前致谢!

Function InRange(Range1 As Range, Range2 As Range) As Boolean
    Set intersectRange = Application.Intersect(Range1, Range2)
    If intersectRange Is Nothing Then
        InRange = False
    Else
        InRange = True
    End If
End Function

在我看来,您希望 Intersect 检查两个范围是否具有具有相同值的单元格?这就是在 S15 和 T15 中都具有值 "a" 的意义吗?

如果是这样,那么这就是您没有得到预期结果的原因。 Intersect 函数 returns 一个范围是两个范围的 "overlap",无论每个范围内的值如何。

因为这是我在 SE 上的第一个 post,希望这对您有所帮助:)

您的函数没有根本性的错误,但我会将 intersectRange 变量声明为一个范围。如果你想 return 相交范围,你可以直接从 intersectRange is not nothing and return a variant from the function.

Function InRange(Range1 As Range, Range2 As Range) As Variant
    Dim intersectRange As Range
    Set intersectRange = Application.Intersect(Range1, Range2)
    If intersectRange Is Nothing Then
        InRange = False
    Else
        InRange = intersectRange.Address(0, 0)
    End If
End Function

更多关于 Intersect method