前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA: 判断单元格区域内是否存在合并单元格

VBA: 判断单元格区域内是否存在合并单元格

作者头像
Exploring
发布2023-10-22 17:16:47
1.2K0
发布2023-10-22 17:16:47
举报

文章背景: 工作中,有时需要判断单元格区域内是否存在合并单元格,这时,可以用到Range.MergeCells属性。

合并单元格只有左上角的单元格包含数据,其他为空。

1 Range.MergeCells属性

Range.MergeCells

True if the range contains merged cells. Read/write Variant.

  • 当该Range是一个完成合并的区域时,该属性返回True;
  • 当该Range完全不包含合并单元格时,该属性返回False;
  • 当该Range部分包含合并单元格时,该属性返回Null。

Null是VBA中的一个特殊的数值,可以近似地将其理解为无效数据。判断一个变量是否为Null时,需要使用函数IsNull

示例:If IsNull(Range1.MergeCells) = True Then…

Range.MergeCells属性可读可写,把某个区域的单元格合并的代码可以写成Range.MergeCells = True

2 示例

VBA示例代码:

代码语言:javascript
复制
Option Explicit

Sub mergeCells()

    '测试合并单元格的属性
    
    Dim wt As Worksheet, flag, flag1, flag2, flag3, flag4, flag5
    
    Set wt = ThisWorkbook.Worksheets("Sheet1")
    
    flag = wt.Range("B3").mergeCells        'Return True
    
    flag1 = wt.Range("B6:B8").mergeCells    'Return True
    
    flag2 = wt.Range("B6:B9").mergeCells    'Return Null
    
    flag3 = wt.Range("B3:C4").mergeCells    'Return Null
    
    flag4 = wt.Range("B2:B4").mergeCells    'Return Null
    
    flag5 = wt.Range("B2").mergeCells       'Return False
      
    Exit Sub
    
End Sub

(1)对于flag,单元格区域B3只有一个合并单元格,返回True;

(2)对于flag1,单元格区域B6:B8,返回True,这个结果较难理解。因为单元格区域B6:B7是一个合并单元格,B8:B9是另一个合并单元格。换句话说,单元格区域B6:B8,包含一个完成合并的区域,并且不包含未合并的单元格。

(3)对于flag2,单元格区域B6:B9包含两个完成合并的单元格区域,返回Null。

(4)对于flag3,单元格区域B3:C4包含两个完成合并的单元格区域,返回Null。

(5)对于flag4,单元格区域B2:B4部分包含合并的单元格,返回Null。

(6)对于flag5,单元格区域B2完全不包含合并单元格,返回False。

参考资料:

[1] VBA编程知识点(15)——合并单元格 - 知乎 (zhihu.com)(https://zhuanlan.zhihu.com/p/91271337)

[2] Range.MergeCells 属性 (Excel) | Microsoft Learn(https://learn.microsoft.com/zh-cn/office/vba/api/excel.range.mergecells)

[3] 常用功能加载宏——快速定位合并单元格(https://cloud.tencent.com/developer/article/1669659)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Range.MergeCells属性
  • 2 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档