2011-03-15 174 views
1

我还没有找到任何可以帮到我的东西。Excel宏 - 打开特定的word文件

我试图打开某个文件,将一些数据写入并保存在不同的名称下。这是我到目前为止:

Dim appWD As Word.Application 
Set appWD = CreateObject("Word.Application.8") 
Set appWD = New Word.Application 
Dim docWD As Word.Document 
Set docWD = appWD.Documents.Open("C:\Documents and Settings\Excel macro\Standaard.docx") 
appWD.Visible = True 
' 
' Data is selected and copied into "Design" 
' 
Copy all data from Design 
Sheets("Design").Select 
Range("A1:G50").Copy 
' Tell Word to create a new document 
appWD.Documents.Add 
' Tell Word to paste the contents of the clipboard into the new document 
appWD.Selection.Paste 
' Save the new document with a sequential file name 
Sheets("Sheet1").Select 
appWD.ActiveDocument.SaveAs Filename:=ThisWorkbook.Path & "/" & "TEST" & Range("C8").Text 
' Close this new word document 
appWD.ActiveDocument.Close 
' Close the Word application 
appWD.Quit 

目前它所做的只是;打开Standaard.docx文件,打开一个新文件并将所有内容粘贴到新文件中并保存。它应该打开Standaard.docx文件,将其粘贴到那里并以新名称保存。

非常感谢!

回答

2

,它会打开一个新的文件,是因为你有行:

appWD.Documents.Add 
在你的代码

前行:

appWD.Selection.Paste 

如果去掉appWD.Documents.Add Word将粘贴到您的活动文档(即“Standaard.docx”)。

只是另一点,则无需行:

Set appWD = CreateObject("Word.Application.8") 

,你马上初始化它下面的行一个新的Word应用程序具有:

Set appWD = New Word.Application 
+0

Wo rks精彩!非常感谢你 – CustomX 2011-03-15 11:40:33

0

这个宏打开一个文件然后根据Excel文件Sheet1中更新的信息将其另存为新文件名在不同文件夹中

Sub OpenDocFileNewName() 


' 
' OpenDocFileNewName Macro 

' 
' 
    Set WordApp = CreateObject("Word.Application.8") 

Set WordDoc = WordApp.Documents.Open("C:\Users\mmezzolesta\Documents\_TestDataMerge\STANDARD.docx") 

WordApp.Visible = True 

' 
' 
'Save as new file name 

Sheets("Sheet1").Select 

WordApp.ActiveDocument.SaveAs Filename:=("C:\Users\mmezzolesta\Documents\_TestMailMergeAuto") & "/" & Range("A2") & "Standard-Grounding-" & Range("e2").Text 

WordApp.ActiveDocument.Close 

WordApp.Quit 

' 
' 
End Sub