如何快速判断Excel中选区跨页?

162 篇文章 16 订阅
20 篇文章 0 订阅

实例需求:应用开发过程中,需要校验选中区域,要求选中区域不能跨页,即选中区域分布在两个不同的页面中。

示例代码如下。

Sub Demo()
    Dim rSelect As Range, oHP As HPageBreak
    Dim UpCell As Range, DownCell As Range
    Set rSelect = Selection.EntireRow 
    ActiveWindow.View = xlPageBreakPreview
    For Each oHP In ActiveSheet.HPageBreaks
        Set DownCell = oHP.Location
        Set UpCell = DownCell.Offset(-1, 0)
        If Not ((Intersect(DownCell, rSelect) Is Nothing) Or (Intersect(UpCell, rSelect) Is Nothing)) Then
            MsgBox "选区跨页"
            ActiveWindow.View = xlNormalView
            Exit Sub
        End If
    Next
    MsgBox "选区合规"
    ActiveWindow.View = xlNormalView
End Sub

【代码解析】
第4行代码读取选中单元格所在的整行区域。
第6~14行代码循环遍历活动工作表中的水平分页符。
第7行代码获取水平分页符的位置,即分页符之下的单元格。
第8行代码获取分页符之上的单元格。
第9行代码判断是否跨页,其中的判断条件为Not (a or b),其展开形式为Not a And Not b),即DownCell和UpCell都在rSelect之内。
第10行代码显示提示信息。
第11行代码退出分页预览模式。
第12行代码结束代码过程执行。
第15~16行代码与上面类似,不再赘述。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值