none
在VB6內,如何同時OPEN兩個.DOC檔,並能同時交替存取其資料? RRS feed

  • 問題

  • 下列指令碼是開啟10個暫存檔,然後一個接一個插入到"a.doc"內,而a.doc每次插入前必須重覆開啟又重覆存檔,缺乏效率,我希望a.doc只開啟一次,插入10個暫存檔後,再存檔!不知如何修改?

      With WordObj

       For i = 1 To 10

        TMPname="TMP" & cstr(i) & ".DOC"

        .Documents.open TMPname

          ....一些存取的指令碼.....

        .ActiveDocument.SaveAs TMPname            '存入暫存檔

        .ActiveDocument.Close

    ''''

        .Documents.open "a.doc"    '打開已建立的母檔

        .Selection.InsertFile FileName:=TMPname, Range:="", _
    ConfirmConversions:=False, Link:=False, Attachment:=False''

        .ActiveDocument.SaveAs "a.doc"

        .ActiveDocument.Close

       Next

      End With

    2007年3月8日 下午 05:46

解答

  • 因為直接版上打,沒注意到在 VB6 函數要加括號,你再試看看:

    Set docMaster = .Documents.open ("a.doc")

    Set docInsert = .Documents.open (TMPname)

    2007年3月9日 上午 08:06
    版主

所有回覆

  • 那你就不要用 ActiveDocument 啊...

    你可以用 docMaster / docInsert 兩變數來控制。

    我不確定你的邏輯是否是這樣,假定 a 為主檔:

    With WordObj
       Set docMaster = .Documents.open "a.doc"    '打開已建立的母檔
       For i = 1 To 10
        TMPname="TMP" & cstr(i) & ".DOC"
        Set docInsert = .Documents.open TMPname
          ....一些存取的指令碼.....

        這邊要改成 Copy / Paste 若貼上後,不需存檔,則下面的內容就移掉
        docInsert.SaveAs TMPname            '存入暫存檔
        docInsert.Close
       Next
       docMaster.SaveAs "a.doc"
       docMaster.Close
    End With

    2007年3月9日 上午 12:19
    版主
  •  

    謝謝您的回應!我修改實際測試後:

    下列兩指令在vb6中,會發生編譯錯誤:〔必須是:陳述式結尾〕

    Set docMaster = .Documents.open "a.doc"

    Set docInsert = .Documents.open TMPname

     

    2007年3月9日 上午 06:01
  • 因為直接版上打,沒注意到在 VB6 函數要加括號,你再試看看:

    Set docMaster = .Documents.open ("a.doc")

    Set docInsert = .Documents.open (TMPname)

    2007年3月9日 上午 08:06
    版主
  • 非常感謝您!!

    此招可以解決我的問題!

    2007年3月9日 下午 02:11