Quote:
Originally Posted by Guessed
Add this line (shown in Red) into the Sub you already have
Code:
strPage = InputBox("Enter the page numbers of pages to be deleted: " & vbNewLine & _
"use comma to separate numbers", "Delete Pages", "For example: 1,3")
strPage = funExpandDashes(strPage)
nSplitItem = UBound(Split(strPage, ","))
|
I'm sorry for annoying Mr. Guessed
The following error has appeared:
112.png
error line: objRange.Delete
This is the full code that I used:
Code:
Function funExpandDashes(strPage As String) As String
Dim arrOuter() As String, iMin As Integer, iMax As Integer, arrInner() As String, sExpand As String
Dim x As Integer, y As Integer
strPage = Replace(strPage, " ", "") 'make sure there are no spaces
arrOuter = Split(strPage, ",")
For x = LBound(arrOuter) To UBound(arrOuter)
arrInner = Split(arrOuter(x), "-")
If UBound(arrInner) > LBound(arrInner) Then
sExpand = arrInner(0)
For y = CInt(arrInner(0)) + 1 To CInt(arrInner(1))
sExpand = sExpand & "," & y
Next y
arrOuter(x) = sExpand
End If
Next x
funExpandDashes = Join(arrOuter, ",")
End Function
'Add code here to make sure order is increasing (ie sort array)
Sub DeleteMultiplePagessssssssssssss()
'Delete Multiple Pages by displaying Inputbox
Dim objRange As range
Dim strPage As String
Dim objDoc As Document
Dim nSplitItem As Long
Application.ScreenUpdating = False
' Initialize and enter page numbers of pages to be deleted.
Set objDoc = ActiveDocument
strPage = InputBox("Enter the page numbers of pages to be deleted: " & vbNewLine & _
"use comma to separate numbers", "Delete Pages", "For example: 1,3")
strPage = funExpandDashes(strPage)
nSplitItem = UBound(Split(strPage, ","))
' Find specified pages and highlight their contents.
For nSplitItem = nSplitItem To 0 Step -1
With ActiveDocument
Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=Split(strPage, ",")(nSplitItem)
Set objRange = .Bookmarks("\Page").range
objRange.Delete
End With
Next nSplitItem
Application.ScreenUpdating = True
End Sub