【求助】請問該如何另存word文件中的部分頁數呢?



贊助商連結


kerwin_c
2004-02-10, 03:50 AM
想要將一有大量頁數的word檔
當中的幾頁獨立出來存成另一
個檔,請問該怎麼做呢??
感謝回應!

贊助商連結


Lucky Purple
2004-02-10, 06:02 PM
mark => copy => open new document => paste => save

kerwin_c
2004-02-15, 10:37 PM
我知道此法可行,不過要處理很多檔案而且檔案的頁數很多的時候,
這樣的操作就變得很繁瑣,請問是否有較有效率的方法嗎?

leonchou
2004-02-17, 02:20 AM
寫個巨集試試

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.

ivantw
2004-02-18, 08:26 PM
Leon Chou 兄真是 Office 之神! :D

不過建議改一下紅色字部分,否則可能會產生路徑錯誤。


最初由 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.

leonchou
2004-02-19, 01:51 AM
太抬舉我了~~ (汗)

不過這兩句倒是令我搞混了:
ActiveDocument.SaveAs newDocname
Kill "C:\Temp1.doc" ' 刪除暫存檔

為什麼是先存再殺,而不是先殺再存呢?
而且,SaveAS應該會覆蓋不是嗎?
請教了。

ivantw
2004-02-19, 01:53 AM
最初由 Leon Chou 發表
太抬舉我了~~ (汗)

不過這兩句倒是令我搞混了:
ActiveDocument.SaveAs newDocname
Kill "C:\Temp1.doc" ' 刪除暫存檔

為什麼是先存再殺,而不是先殺再存呢?
而且,SaveAS應該會覆蓋不是嗎?
請教了。

挖哈哈,真抱歉,搞笑話了,我看錯啦.. :(

scceddy
2004-02-20, 05:51 PM
最初由 Ivan Lin 發表
挖哈哈,真抱歉,搞笑話了,我看錯啦.. :(
呵呵 一復出就鬧笑話~:D
不過沒什麼變嘛 您還是一樣常常'看錯'呢~:D

kerwin_c
2004-02-25, 11:03 AM
Leon Chou大大真神...