word删除指定页面

常规程序因为wps的 .docx 文件是基于段落和节的结构,而不是"物理页",所以无法直接按"第几页"删除

在普通程序里面无法读取到他的页码,但是在宏编程里面他能读取到页码,我们就根据宏编程来这样删除。

程序会自动打开选择要删除的文件夹里面的批量.wps文件,然后你只需要修改这个代码

要删除的页面 = Array(12, 4, 2, 1)

bash 复制代码
Sub 批量删除指定页面()
        Dim 文件夹路径 As String
        Dim 文件名称 As String
        Dim 当前文档 As Document
        Dim 要删除的页面 As Variant
        Dim 总页数 As Integer
        Dim i As Integer
        
        ' 设置要删除的页面(从大到小排序)
        要删除的页面 = Array(12, 4, 2, 1)
        
        ' 选择文件夹
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "请选择包含WPS文件的文件夹"
            If .Show = -1 Then
                文件夹路径 = .SelectedItems(1) & "\"
            Else
                MsgBox "未选择文件夹,操作取消。", vbInformation
                Exit Sub
            End If
        End With
        
        ' 开始处理文件
        文件名称 = Dir(文件夹路径 & "*.wps")
        Do While 文件名称 <> ""
            ' 打开文档
            Set 当前文档 = Documents.Open(FileName:=文件夹路径 & 文件名称)
            总页数 = 当前文档.ComputeStatistics(wdStatisticPages)
            
            ' 循环删除指定页面
            For i = LBound(要删除的页面) To UBound(要删除的页面)
                ' 检查页面是否存在
                If 要删除的页面(i) <= 总页数 Then
                    On Error Resume Next ' 忽略可能的错误
                    
                    ' 特殊处理最后一页
                    If 要删除的页面(i) = 总页数 Then
                        ' 将光标移到文档末尾前
                        Selection.EndKey Unit:=wdStory
                        ' 选中到页首(即最后一页内容)
                        Selection.HomeKey Unit:=wdPage, Extend:=wdExtend
                    Else
                        ' 定位到指定页面
                        Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=要删除的页面(i)
                        ' 选中整页
                        Selection.Bookmarks("\Page").Range.Select
                    End If
                    
                    ' 删除选中内容
                    Selection.Delete
                    On Error GoTo 0 ' 恢复错误处理
                    
                    ' 更新总页数
                    总页数 = 当前文档.ComputeStatistics(wdStatisticPages)
                End If
            Next i
            
            ' 保存并关闭文档
            当前文档.Save
            当前文档.Close
            Set 当前文档 = Nothing
            
            ' 处理下一个文件
            文件名称 = Dir()
        Loop
        
        MsgBox "所有WPS文件处理完成!", vbInformation
    End Sub
相关推荐
雾江流2 小时前
WPS国际版18.22 | 集Word,PDF,Sheet,PowerPoint于一体的多功能免费办公套件
pdf·word·软件工程·wps
m0_748248021 天前
C++ 异常处理全解析:从语法到设计哲学
java·c++·word
开开心心就好1 天前
微软官方出品:免费数据恢复工具推荐
网络·笔记·microsoft·pdf·word·音视频·symfony
gc_22991 天前
学习C#调用OpenXml操作word文档的基本用法(5:Style类分析-3)
word·openxml·段落样式定义
_处女座程序员的日常3 天前
如何预览常见格式word、excel、ppt、图片等格式的文档
前端·javascript·word·excel·开源软件
学会用脚编程4 天前
word转Pdf,在window正常,放在linux服务器上就转出来中文是空白
pdf·word
跟着珅聪学java4 天前
在Java中判断Word文档中是否包含表格并读取表格内容,可以使用Apache POI库教程
java·开发语言·word
CodeCraft Studio5 天前
国产化Excel处理控件Spire.XLS教程:如何使用 Java 将 TXT 文本转换为 Excel 表格
java·word·excel·spire·文档格式转换·txt转excel
开开心心就好6 天前
电子报纸离线保存:一键下载多报PDF工具
网络·笔记·macos·pdf·word·音视频·phpstorm
书中自有妍如玉6 天前
Node.Js 实现模板生成Word、Word转Pdf文件、Excel生成、上传和下载
pdf·node.js·word