首页 > 其他分享 >按照分页预览页码拆分工作表并在打印标题区域写入相应页码信息

按照分页预览页码拆分工作表并在打印标题区域写入相应页码信息

时间:2024-09-27 15:50:05浏览次数:1  
标签:Dim End 预览 表并 printTitleRows wsDest totalPageNumber 页码 wsSource

适用于具备水平分页,无垂直分页的Excel工作表的情况。
尽量保持原工作表格式而采用建立副本的方法,代码存在优化的可能。
本文假设打印标题不低于两行。

Sub SplitWorkbookByPrintPages()
    Dim wsSource As Worksheet
    Dim wsDest As Worksheet
    Dim i As Long
    Dim lastRow As Long
    Dim totalPageNumber As Long
    Dim startRow As Long
    Dim endRow As Long
    Dim printTitleLastRow As Long
    Dim printTitleRows As String

    'Application.DisplayAlerts = False
    ' 设置源工作表
    Set wsSource = ThisWorkbook.Sheets("Sheet1") ' 替换为您的工作表名称
    
    ' 获取总页数
    totalPageNumber = wsSource.PageSetup.Pages.Count
    
    ' 获取打印标题行
    printTitleRows = wsSource.PageSetup.printTitleRows
    
    ' 获取打印标题的最后一行
    If printTitleRows <> "" Then
        printTitleLastRow = Split(Split(printTitleRows, ":")(1), "$")(1)
    Else
        printTitleLastRow = 0
    End If
    
    ' 获取最后一行
    lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    
    ' 遍历每个水平分页符
    For i = 1 To totalPageNumber
        ' 确定当前页的起始和结束行
        If i = 1 Then
            startRow = 1
        Else
            startRow = wsSource.HPageBreaks(i - 1).Location.Row
        End If
        
        If i < totalPageNumber Then
            endRow = wsSource.HPageBreaks(i).Location.Row - 1
        Else
            endRow = lastRow
        End If
        
        ' 创建新工作表(复制整个源工作表)
        wsSource.Copy After:=Worksheets(Worksheets.Count)
        Set wsDest = ActiveSheet
        
        ' 设置新工作表的名称
        wsDest.Name = "Page " & i
        
        ' 删除不需要的行,但保留打印标题行
        If totalPageNumber = 1 Then Exit Sub
        If i = 1 Then wsDest.Rows(endRow + 1 & ":" & lastRow).Delete
        
      
        If i > 1 Then
            If printTitleLastRow > 0 Then
                wsDest.Rows((printTitleLastRow + 1) & ":" & (startRow - 1)).Delete
            Else
                wsDest.Rows("1:" & (startRow - 1)).Delete
            End If
        End If
        If i < totalPageNumber Then
            wsDest.Rows((endRow - startRow + printTitleLastRow + 2) & ":" & lastRow).Delete
        End If
        
        ' 在指定单元格设置动态内容:页码及总页数
        wsDest.Range("E2").Value = "Page " & i & " of " & totalPageNumber
        wsDest.Range("E2").Font.Bold = True
        
        ' 保持原始的打印标题设置
        wsDest.PageSetup.printTitleRows = printTitleRows
        
        ' 调整打印区域
        wsDest.PageSetup.PrintArea = wsDest.UsedRange.Address
    Next i
    
    
    
    ' 删除源工作表(如果需要的话)
    'wsSource.Delete
    'Application.DisplayAlerts = True
End Sub

标签:Dim,End,预览,表并,printTitleRows,wsDest,totalPageNumber,页码,wsSource
From: https://www.cnblogs.com/geyee/p/18435871

相关文章

  • VUE2 使用 el-upload 实现单文件上传、删除、预览(上传后隐藏上传图片按钮)
    实现后效果展示:上传前:上传后:注意点:on-change事件不要与on-success事件同时使用Demo:<template><div><el-uploadlist-type="picture-card"accept="image/*":file-list="fileList":action="uploadIma......
  • 要实现在Vue 2中点击按钮后在新浏览器标签页中预览PDF文件 ,pdf文件默认放大125% 禁止P
    要在Vue2中实现点击按钮后在新浏览器标签页中预览PDF文件,并设置PDF文件默认放大125%以及禁止PDF的工具栏下载功能,你可以使用window.open方法,并在其中设置合适的URL参数来控制PDF查看器的行为。以下是一个实现的示例:创建Vue组件:在Vue组件中,添加一个按钮用于触发PDF预览......
  • 《鸿蒙/Harmony | 开发日志》预览文件
    APP中常有需求就是点击文件打开预览。鸿蒙中,可以借助访问的预览文件服务来实现。测试下来,常见的文档类型txt,doc,excel,ppt,pdf,图片,视频等都是默认可以打开的。遇到不能打开的,界面也会按钮是否使用其他APP来打开。支持的文件类型官方文档列出的支持类型,实际测试下来......
  • VR开发日志-如何用VR头盔看到自己开发的VR内容?如何用Pico头盔直连UE开发的内容预览?
    大家好,我是JK,今天和大家分享关于如何用VR头盔看到自己开发的VR内容?本次使用的方法是用Pico头盔直连UE开发的内容预览。大家可以跟着步骤来做,具体操作步骤如下:第一步:到pico官网下载PicoDeveloperCerter,链接:PICO开发者平台(picoxr.com)第二步:安装好PicoDeveloper......
  • 在线预览文档的前端实现方法
    在开发Web应用程序中,我们经常需要实现对各种类型文档的在线预览功能,比如PDF、Word文档、Excel表格等等。除了使用第三方库,我们还可以考虑其他几种实现方法。下面介绍几种常见的方法:1.使用浏览器内置组件现代浏览器通常内置了处理文档类型的渲染引擎,例如Chrome和Firefox都具......
  • vue3.0使用v-md-editor预览markdown文件
    1.安装依赖npmi@kangc/v-md-editor-S2.在main.js文件中引用注册组件import{createApp}from'vue';//预览组件以及样式importVMdPreviewfrom'@kangc/v-md-editor/lib/preview';import'@kangc/v-md-editor/lib/style/preview.css';importgithubThe......
  • 11----mtk芯片专用解锁工具 解除FRP 很小的工具 去除屏幕锁 免授权等等 工具预览与步
         机型的FRP锁是谷歌账号锁。工具是mtk芯片使用。可以去除当前机型的FRP和米账号重置。操作非常简单。但前提是联机驱动要装好。任何的工具联机驱动是关键。工具功能选项★★★★★工具开发者说明功能与选项操作与资源下载★★★★★具体工具操作使用指南工......
  • 10----展讯芯片机型解锁读写分区工具 工具预览与功能解析
         展讯芯片机型工具很少。另外也由于展讯芯片在机型类相对较少。今天的这款工具是展讯芯片专用。工具开发者说明。可以读写分区修改分区   檫除分区等操作。下面我们来看看工具的具体说明与操作解析工具功能选项★★★★★工具开发者说明功能与选项操作与资......
  • 直播录制工具、同时预览直播、反复观摩
    前言    下载链接放到文章最后了。        介绍一款直播录制工具,真的很好用。界面简单,目前很多功能还是不全的,但是不妨碍他真的很好用。看着界面应该不是什么大团队的制作。目前我测试的无压力,还可以申请白嫖。咳咳,说多了,就是比较简单。直接可以对直播中的......
  • 1----安卓机型修复串码 开启端口 檫除基带 支持高通与MTK机型工具预览与操作解析
              在玩机过程中。很多玩家会碰到各种各样的故障。其中最多的就在于基带串码类。由于目前的安卓机型必须修改或者写入串码等参数必须开启端口。而一些初级玩友不太了解开启参数端口的步骤。这个工具很简单的为安卓机型开启端口。并且操作相对简单......