Excel VBA交集

我在网上find这个代码,显然它适用于其他人,但不是我? 我不知道哪里错了。 我做了一个简单的例子,并让我的Range1和Range 2在Excel中成为确定的单元格, 在这里输入图像说明

另外,我想知道是否有办法返回交点,如果可以的话。 提前致谢!

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 

在我看来,你期待相交检查两个范围是否有单元格具有相同的值? 那么S15和T15的价值就是“a”吗?

如果是这样,那么这就是为什么你没有得到你所期望的。 Intersect函数返回两个范围的“重叠”范围,而不pipe每个范围内的值如何。

因为这是我在SE的第一篇文章,我希望这有助于:)

你的函数没有什么根本的错误,但是我将声明intersectRangevariables作为范围。 如果你想返回相交范围,你可以直接从intersectRange做到这一点,并不是什么,并从函数返回一个变种。

 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 

更多关于相交的方法 。