如何测试选择是否完全在一个范围内?

问题描述 投票:0回答:1

所以我发现了类似的东西:VBA test if cell is in a range

但这似乎是测试(据我所知),如果选择的单元格与该范围相交。但是,我需要找到一种方法来确认所选范围是否完全在该范围内,以便我可以将宏限制为仅在指定范围的单元格内工作。

这是我到目前为止所做的....我将所选单元格命名为范围(sel_rng)并将它们设置为变量....然后我将可接受范围命名为命名范围(okay_rng)... .then(希望......但这是我仍然不清楚如何拉开的部分)如果“sel_rng”完全位于“okay_rng”中我想抓住“sel_rng”并合并它,否则会抛出一个错误“

Sub Merge_Cells()
'
' Merge_Cells Macro
Dim selcells As Range
Selection.Name = "sel_rng"
selcells = Range("sel_rng")

Dim okayrng As Integer
okayrng = Range("itemrows").Value + 28
ActiveSheet.Range("C29:C" & okayrng).Select
Selection.Name = "okay_rng"



Range("sel_rng").Select
Selection.Merge

想什么?

excel vba excel-vba intersection named-ranges
1个回答
0
投票

两个范围的交点将确定一个范围是否完全在另一个范围内。

dim rng1 as range, rng2 as range

set rng1 = range("b2:c3")
set rng2 = range("a1:d4")    

'if rng1 is completely within rng2, the intersection's address will be the same as rng1's address
if application.intersect(rng1, rng2).address = rng1.address then
    debug.print rng1.address(0, 0) & " is within " & rng2.address(0, 0)
end if

顺便说一句,交叉点可能没有任何意义。您应该为此添加错误处理。

© www.soinside.com 2019 - 2024. All rights reserved.