ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: cccf

[求助] .HPageBreaks(i).Location.Row为什么说运行时越界

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-3-21 05:36 | 显示全部楼层
停留在最后的数据界面,再执行即可

TA的精华主题

TA的得分主题

发表于 2022-3-21 05:42 | 显示全部楼层
如果满足以下条件,则可能会发生此问题:

活动单元格位于水平分页符上方或 HPageBreaks 或 VPageBreaks 索引所引用的垂直分页符左侧。

垂直或水平分页符位置位于可见窗口右侧或工作簿可见窗口下方的屏幕。

在 Microsoft Excel 中使用 Visual Basic for Applications 宏类似于以下代码:

Sub TestHorizontal()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.HPageBreaks.Count    MsgBox ActiveSheet.HPageBreaks(1).Location.Address    MsgBox ActiveSheet.HPageBreaks(2).Location.AddressEnd Sub Sub TestVertical()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.VPageBreaks.Count    MsgBox ActiveSheet.VPageBreaks(1).Location.Address    MsgBox ActiveSheet.VPageBreaks(2).Location.Address    MsgBox ActiveSheet.VPageBreaks(3).Location.AddressEnd Sub
解决方法
Microsoft 提供的编程示例仅用于说明,没有任何明示或默示的保证。这包括但不限于对适销性或特定用途适用性的默示担保。本文假定你熟悉所演示的编程语言,以及用于创建和调试过程的工具。Microsoft 支持工程师可帮助解释特定过程的功能,但不会修改这些示例以提供额外的功能或构建过程来满足你的特定要求。 若要避免此问题,请在代码使用水平或垂直分页符的 Location 属性之前,添加代码以选择工作表中使用的最后一个单元格。 例如,使用以下代码选择结束单元格,使用 Location 属性,然后重新选择原始活动单元格:

Sub CheckPageBreaks()    'Set object "currcell" equal to active cell.    Set currcell = ActiveCell        'Select the last cell on the worksheet that has data.    Range("IV65536").Select        'Include code with Location property here.    x = ActiveSheet.HPageBreaks(2).Location.Address    MsgBox x    'Example sets x equal to address of second horizontal page break.    'Then message box displays the address of the page break.        'Select original active cell.    currcell.SelectEnd Sub
计算 Location 属性后,您可以再次选择原始活动单元格。 如果使用代码在第一个和最后一个单元格之间滚动,或者选择最后一个单元格,然后立即重新选择起始单元格,则仍可能会出现该错误。 屏幕必须重绘并计算 Location 属性,才能使解决方法生效。 如果将上述代码与

Application.ScreenUpdating = False
若要防止屏幕重绘,仍然出现问题。

状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

更多信息
如果对VPageBreaks或HPageBreaks属性使用Count方法,则可能会收到零结果。 这会在 "原因" 部分中列出的条件下发生。 如果分页符可见, Count 方法可能会提供正确的答案。 如果分页符位于工作簿窗口的可见部分附近,则垂直或水平分页符的 Count 方法可能会提供预期的结果。 前面提供的解决方法可用于获取预期的计数。如果从窗口到分页符的距离小于分页符之间的距离的一半,则在工作簿窗口的右侧或工作簿窗口的正下方有一个分页符,可以启用 Count 方法来处理和分页。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-12-14 06:24 , Processed in 0.015710 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表