将Word文档的内容从excel VBA

时间:2018-04-07 02:28:19

标签: excel vba excel-vba ms-word

我正在尝试使用Excel数据在word文档上执行各种任务。但是,这将由其他人使用,因此我想将所有内容从doc(以及格式和表格)复制到新的word doc并编辑新的文档以防止其他人意外地保存第一个(模板一) )。我还想关闭模板(第一个)doc并保持第二个(新)一个。

我是VBA的新手,我很难理解如何处理这个问题。经过一堆谷歌搜索,我编译了这个(不工作)代码:

Dim WordApp As Object
Dim WordDoc As Word.Document
Dim NewWordDoc As Word.Document
'Dim other stuff'

'-------------------------------------------------------------------
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open("C:\Users\Windows\Documents\CRC Labels 
test.doc")
Set NewWordDoc = WordApp.Documents.Add 'I think this gives an error'
'------------------------------------------------------------------------
'Line that actives WordDoc'
Selection.WholeStory 'Select whole document
Selection.Expand wdParagraph 'Expands your selection to current paragraph
Selection.Copy 'Copy your selection
'Line that closes WordDoc'
'Line that activates NewWordDoc'
Selection.PasteAndFormat wdPasteDefault 'Pastes in the content
'------------------------------------------------------------------------
'Do stuff with NewWordDoc'


'------------------------------------------------------------------------
Set WordDoc = Nothing
Set WordApp = Nothing

处理这种情况还有其他想法吗?感谢您的回复。

1 个答案:

答案 0 :(得分:0)

当您发现自己使用现有文档作为创建新文档的基础时,现在可以考虑将该文档另存为Word 模板。这是一种特殊类型的文件(* .dotx或* .dotm),可能包含

  • 锅炉文字
  • 根据需要插入额外锅炉板的积木
  • 样式(格式化命令集)
  • 自定义键盘快捷键
  • 功能区自定义
  • VBA代码(宏,仅限* .dotm)

将由模板生成的所有文档继承和/或共享。

要从模板创建新文档,请使用fullpage方法,指定路径和文件名:

Documents.Add

这将从模板创建一个新文档,复制完整的模板内容而不影响模板本身。

注意:您还可以使用"普通文档" (* .docx)使用Documents.Add方法,它将复制内容。但是,它不会链接回该文档,因此它不能共享宏。例如。