Excel VBA中,如何判断两个不同单元格是否在同一合并的单元格中?

 我来答
鱼木混猪哟
高粉答主

推荐于2016-07-29 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33693

向TA提问 私信TA
展开全部
可以用下面的代码实现(假设要判断的两个单元格为A1和B1):
Sub main()
Set a= Range("A1").MergeArea
Set b = Range("A1").MergeArea
If a.Address = b.Address Then
MsgBox "同一合并区域"
Else
MsgBox "不是同一合并区域"
End If
End Sub
这里用到的原理,是判断两个单元格合并区域的地址是否一致。

关于此例中用到的MergeArea的相关知识:
MERGEAREA:返回一个 Range对象,该对象代表包含指定单元格的合并区域。如果指定的单元格不在合并区域内,则该属性返回指定的单元格。只读。Variant 类型。
expression.MergeArea
expression 必需。该表达式返回“应用于”列表中的对象之一。
说明
MergeArea属性只应用于单个单元格区域。

本示例为包含单元格 A3 的合并区域赋值:
Set ma = Range("a3").MergeArea
If ma.Address = "$A$3" Then
MsgBox "not merged"
Else
ma.Cells(1, 1).Value = "42"
End If
chaohua008
推荐于2016-10-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5800
采纳率:14%
帮助的人:3008万
展开全部
使用mergearea属性获取合并区域对象,再用address属性得到它们的地址,如果相同就是在同一合并区域。

Sub c()
Set s = Range("a1").MergeArea
Set n = Range("b1").MergeArea
If s.Address = n.Address Then
MsgBox "同一合并区域"
Else
MsgBox "不在同一合并区域"
End If
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzhilling
2012-10-18 · TA获得超过2700个赞
知道大有可为答主
回答量:3255
采纳率:45%
帮助的人:1114万
展开全部
比如 A1~A5合并成A1
判断B1,C1是否在A1中

if instr(1,a1,b1)>0 then msgbox("b1在a1中存在")
if instr(1,a1,c1)>0 then msgbox("c1在a1中存在")
if (instr(1,a1,b1)>0) * (instr(1,a1,c1)>0) then msgbox("b1、c1在a1中存在")
追问
instr 可用于单元格的查询?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ca64c0c
2012-10-18 · TA获得超过4666个赞
知道大有可为答主
回答量:2991
采纳率:61%
帮助的人:1472万
展开全部
用 MergeArea 属性返回合并的区域,
然后判断各个单元格是否在上述区域内即可
追问
我解决了,你的方法可以用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式