繁体   English   中英

将Word文档的内容从excel VBA复制到新创建的Word文档

[英]Copying contents of Word doc to newly created Word doc from excel VBA

我正在尝试使用Excel数据对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

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

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

  • 样板文字
  • 根据需要插入带有附加锅炉板的构建块
  • 样式(格式化命令集)
  • 自定义键盘快捷键
  • 功能区自定义
  • VBA代码(仅限* .dotm中的宏)

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

为了从模板创建新文档,请使用Documents.Add方法,并指定路径和文件名:

Dim wdDoc as Word.Document
Set wdDoc = Documents.Add(path & filename) 
'From outside Word: Set wdDoc = wdApplication.Documents.Add

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM