想要將一有大量頁數的word檔
當中的幾頁獨立出來存成另一
個檔,請問該怎麼做呢??
感謝回應!
想要將一有大量頁數的word檔
當中的幾頁獨立出來存成另一
個檔,請問該怎麼做呢??
感謝回應!
mark => copy => open new document => paste => save
我知道此法可行,不過要處理很多檔案而且檔案的頁數很多的時候,
這樣的操作就變得很繁瑣,請問是否有較有效率的方法嗎?
寫個巨集試試
Sub 另存指定頁()
inputpages = InputBox("輸入要另存的頁碼, 以逗號分隔")
If inputpages = "" Then Exit Sub
newDocname = "D:\temp\Doc1.doc"
Selection.HomeKey Unit:=wdStory
Set myRange = Selection.Range
Set myDoc = ActiveDocument
Documents.Add
pages = Split(inputpages, ",") '將輸入頁碼轉為陣列
For Each page In pages
Set myRange = myRange.GoTo(What:=wdGoToPage, _
Which:=wdGoToAbsolute, Count:=page)
pagestart = myRange.Start
Set myRange = myRange.GoToNext(What:=wdGoToPage)
pageend = myRange.Previous.Start
If myRange.Start = pagestart Then _
pageend = myDoc.Content.End
myDoc.Range(pagestart, pageend).Copy
Selection.Paste
Next
ActiveDocument.SaveAs newDocname
End Sub
Word2000 測試ok.
Leon Chou 兄真是 Office 之神!
不過建議改一下紅色字部分,否則可能會產生路徑錯誤。
最初由 Leon Chou 發表
寫個巨集試試
Sub 另存指定頁()
inputpages = InputBox("輸入要另存的頁碼, 以逗號分隔")
If inputpages = "" Then Exit Sub
newDocname = "C:\Temp1.doc"
Selection.HomeKey Unit:=wdStory
Set myRange = Selection.Range
Set myDoc = ActiveDocument
Documents.Add
pages = Split(inputpages, ",") '將輸入頁碼轉為陣列
For Each page In pages
Set myRange = myRange.GoTo(What:=wdGoToPage, _
Which:=wdGoToAbsolute, Count:=page)
pagestart = myRange.Start
Set myRange = myRange.GoToNext(What:=wdGoToPage)
pageend = myRange.Previous.Start
If myRange.Start = pagestart Then _
pageend = myDoc.Content.End
myDoc.Range(pagestart, pageend).Copy
Selection.Paste
Next
ActiveDocument.SaveAs newDocname
Kill "C:\Temp1.doc" ' 刪除暫存檔
End Sub
Word2000 測試ok.
太抬舉我了~~ (汗)
不過這兩句倒是令我搞混了:
ActiveDocument.SaveAs newDocname
Kill "C:\Temp1.doc" ' 刪除暫存檔
為什麼是先存再殺,而不是先殺再存呢?
而且,SaveAS應該會覆蓋不是嗎?
請教了。
挖哈哈,真抱歉,搞笑話了,我看錯啦..最初由 Leon Chou 發表
太抬舉我了~~ (汗)
不過這兩句倒是令我搞混了:
ActiveDocument.SaveAs newDocname
Kill "C:\Temp1.doc" ' 刪除暫存檔
為什麼是先存再殺,而不是先殺再存呢?
而且,SaveAS應該會覆蓋不是嗎?
請教了。
呵呵 一復出就鬧笑話~最初由 Ivan Lin 發表
挖哈哈,真抱歉,搞笑話了,我看錯啦..
不過沒什麼變嘛 您還是一樣常常'看錯'呢~
Leon Chou大大真神...
書籤