我有一个问题比较两个范围。为了简单起见,我将采取两个简单的范围M6:M10
和M6:M8
,我想知道第二个是否包含在第一个和第一件事,我认为是写
Sub example()
Dim range1, range2, inte As range
Set range1 = range("M6:M10")
Set range2 = range("M6:M8")
Set intersec = Intersect(range1, range2)
If intersec = range2 Then
[if statement]
End If
End Sub
字符串
但此过程返回以下错误:
PRB: Error 13 (Type Mismatch) & Error 3061 w/ SQL Queries
*
所以也许我不能用这种方式使用方法“intersect”.
8条答案
按热度按时间piztneat1#
这里有一个方法:
字符串
pbossiut2#
首先,将range1和range2变量声明为范围。
然后,当您将intersec变量与range2变量进行比较时,使用range方法的address属性来比较内容。
比如说:
字符串
iqjalb3h3#
这里有一些你可以尝试的东西:
字符串
zzwlnbp84#
我使用它的方式是这样的:
字符串
你可以删除else或者写Not nothing,这取决于你想要实现什么。
crcmnpdw5#
另一种变体:
字符串
muk1a3rh6#
你可以做一个交集与范围的比较,以确定一个范围是否包含在另一个范围内。一些代码来显示这一点。
字符串
如果没有一个范围完全包含在另一个范围内,则该函数将返回0,如果第一个范围包含在第二个范围内,则返回1,如果第二个范围包含在第一个范围内,则返回2,如果范围相等,则返回3
jtjikinw7#
对于一个更强大的解决方案,适用于具有多个区域的范围,彼此不同的范围,具有非常大数量的单元格的范围(所以.CountLarge,而不是.Count),那么这将起作用:
字符串
3df52oht8#
字符串