常規程序因為wps的?.docx
文件是基于段落和節的結構,而不是“物理頁”,所以無法直接按“第幾頁”刪除
在普通程序里面無法讀取到他的頁碼,但是在宏編程里面他能讀取到頁碼,我們就根據宏編程來這樣刪除。
程序會自動打開選擇要刪除的文件夾里面的批量.wps文件,然后你只需要修改這個代碼?
要刪除的頁面 = Array(12, 4, 2, 1)
Sub 批量刪除指定頁面()Dim 文件夾路徑 As StringDim 文件名稱 As StringDim 當前文檔 As DocumentDim 要刪除的頁面 As VariantDim 總頁數 As IntegerDim i As Integer' 設置要刪除的頁面(從大到小排序)要刪除的頁面 = Array(12, 4, 2, 1)' 選擇文件夾With Application.FileDialog(msoFileDialogFolderPicker).Title = "請選擇包含WPS文件的文件夾"If .Show = -1 Then文件夾路徑 = .SelectedItems(1) & "\"ElseMsgBox "未選擇文件夾,操作取消。", vbInformationExit SubEnd IfEnd With' 開始處理文件文件名稱 = Dir(文件夾路徑 & "*.wps")Do While 文件名稱 <> ""' 打開文檔Set 當前文檔 = Documents.Open(FileName:=文件夾路徑 & 文件名稱)總頁數 = 當前文檔.ComputeStatistics(wdStatisticPages)' 循環刪除指定頁面For i = LBound(要刪除的頁面) To UBound(要刪除的頁面)' 檢查頁面是否存在If 要刪除的頁面(i) <= 總頁數 ThenOn Error Resume Next ' 忽略可能的錯誤' 特殊處理最后一頁If 要刪除的頁面(i) = 總頁數 Then' 將光標移到文檔末尾前Selection.EndKey Unit:=wdStory' 選中到頁首(即最后一頁內容)Selection.HomeKey Unit:=wdPage, Extend:=wdExtendElse' 定位到指定頁面Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=要刪除的頁面(i)' 選中整頁Selection.Bookmarks("\Page").Range.SelectEnd If' 刪除選中內容Selection.DeleteOn Error GoTo 0 ' 恢復錯誤處理' 更新總頁數總頁數 = 當前文檔.ComputeStatistics(wdStatisticPages)End IfNext i' 保存并關閉文檔當前文檔.Save當前文檔.CloseSet 當前文檔 = Nothing' 處理下一個文件文件名稱 = Dir()LoopMsgBox "所有WPS文件處理完成!", vbInformationEnd Sub