Word VBA:批量删除多个分段页面
生活随笔
收集整理的這篇文章主要介紹了
Word VBA:批量删除多个分段页面
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
一、難點分析
1.數組的應用
2.操作順序
二、示例代碼
三、操作圖示
1.復制代碼-運行
2.輸入要刪除的頁碼范圍
3.操作完成
一、難點分析
1.數組的應用
比如,輸入多個區間【1,5-10,21-28】,如何循環這些區間。
這里主要是:
(1)將用戶輸入的需要刪除的區間通過split函數用逗號(,)進行分割后存儲在一個數組arr中;
(2)從arr的最大下標(最后一個)循環到arr的最小下標(第一個),每次循環的結果通過split函數用“-”分隔,存入數組brr中;
(3)i從brr(1)的值循環到brr(0)的值,刪除i對應的頁面。
注意:這里需要判斷一下,如果arr中的元素本身沒有“-”,即分割出的brr中有一個元素brr(0),此時需要讓brr(1)也等于brr(0)。否則,brr(1)不存在,會報錯。
2.操作順序
刪除盡量從后面向往前面操作,以免出現不必要的錯誤
二、示例代碼
Sub 刪除頁()Dim i As LongDim j As LongDim k As LongDim pg As RangeDim arr, brrDim prmt As StringOn Error GoTo err1Application.ScreenUpdating = Falseprmt = "請輸入需要各部分刪除的頁碼范圍(頁碼從小到大,且每部分不能重疊)," & vbCrLf & _"每部分首尾用【-】連接,各部分之間用逗號分隔,如:" & vbCrLf & _"1-5,10-20,95-100"arr = Split(Replace(Trim(InputBox(prmt, "刪除范圍", "1-5,10-20")), ",", Chr(44)), Chr(44))For i = UBound(arr) To LBound(arr) Step -1brr = Split(arr(i), "-")If LBound(brr) = UBound(brr) ThenReDim Preserve brr(1)brr(1) = brr(0)End IfFor j = Val(brr(1)) To Val(brr(0)) Step -1Set pg = Selection.GoTo(wdGoToPage, wdGoToAbsolute, j)With pg.Select.SetRange pg.Start, pg.Bookmarks("\page").End.Deletek = k + 1End WithNextNextApplication.ScreenUpdating = TrueSet pg = NothingMsgBox Format(k, "完成 共刪除了0頁")Exit Sub err1:MsgBox Err.Description End Sub三、操作圖示
1.復制代碼-運行
新建模塊-粘貼代碼-運行2.輸入要刪除的頁碼范圍
根據提示輸入要刪除的頁碼范圍,要求:
請輸入需要各部分刪除的頁碼范圍(頁碼從小到大,且每部分不能重疊),每部分首尾用【-】連接,各部分之間用逗號分隔,如: "1-5,10-20,95-100";
中間的引號、逗號都用半角符號(英文標點)。
輸入頁碼范圍-確定3.操作完成
可以看到,剛剛用戶填寫的【67-78,80-81】頁已經正確刪除。
刪除完成總結
以上是生活随笔為你收集整理的Word VBA:批量删除多个分段页面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: smtp邮件服务器配置,配置电子邮件通知
- 下一篇: 大学计算机基础流媒体,大学计算机基础经典