这是我一段时间以来一直在努力解决的问题。请原谅我没有引用我研究过的确切线索,但我没有保留日志。我下面的代码示例是通过审查有关该主题的许多线程构建的。然而,我仍然无法找到我需要的确切解决方案。
简而言之:在 Excel VBA 中,在动态创建和填充后,我需要能够识别长表中每页的最后一行和第一/最后一列,该表可能有 1 到 5 页长(水平)。我还希望有一种快速的方法来识别填充数据的停止位置,但如果没有简单的解决方案,可以从生成例程中获取该数据。以下代码将识别单个页表的正确最终行和列...一次。我可以进行必要的修改来检查多页表的后续页面。我遇到的真正问题是,一旦填充并清除了单元格,Excel 就会将该单元格包含在已用单元格范围中。同一代码的后续执行会失败,因为最后一个单元格不再被正确识别。有没有办法扭转这种情况,或者我可以采取不同的方法?
我确实不喜欢填充单元格并删除它们来查找分页符,但我还没有找到避免这样做的解决方案。感谢您提供的任何指导。,迈克·沙纳汉
Sub Findpagebreaks()
Dim x As HPageBreaks, pb_x As HPageBreak
Dim y As VPageBreaks, pb_y As VPageBreak, PageMatrix() As Integer
Dim LastPopulated(1) As Integer, test As Integer, target As Integer
ReDim PageMatrix(1 To 1, 0 To 2) As Integer
With ActiveSheet
Debug.Print "============================================"
Debug.Print "Horizontal Page Breaks"
Set x = .HPageBreaks
Debug.Print "Initial Hbreaks: ", x.Count
LastPopulated(0) = .Cells.SpecialCells(xlCellTypeLastCell).Row
Debug.Print "Last row of data: ", LastPopulated(0)
target = x.Count + …Run Code Online (Sandbox Code Playgroud)