我对VBA是完全陌生的,特别是在不同的程序中,但是我创建了一个真实世界的小任务,很快变得复杂,有人可能会给我一些指针或代码片段,以尝试实现以下目标:从Excel打开Word,传递变量和文本(VBA宏),远程控制Word
我有一个Excel文件,其中包含名称和数字(请参见下文),我想将它们单独传输到Word文档。
如果我已经强调A2单元格,然后单击[运行],我希望Word自动将打开,并输入了类似
- “嗨,迈克,你的电流量$ 12.37和你住在23 One Street。谢谢。“ -
金额应以粗体打印,之后Word应保存文件并关闭自身,无需进一步输入。
同样,当我选择了A3时,它应该打开另一个文档,写入相同的文本,但Julia的变量填入,保存到指定的位置并关闭。
A B C
1 Name Address Amount
2 Mike 23 One Way $12.37
3 Julia 3949 Street $39.23
[BUTTON]
所以,本质上,我想,我试图从Excel中“远程控制”Word,并将一些变量从Excel提供到Word中。说实话,我完全丧失了如何做到这一点。
我迄今发现的是:
Dim wdApp As Word.Application, wdDoc As Word.Document
On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then 'Word isn't already running
Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0
Set wdDoc = wdApp.Documents.Open("C:\temp\[NAME AFTER SELECTED FIELD A2].docx")
wdApp.Visible = True
...
现在我不知道该怎么办! 如何将标准文本与选定字段的行中的变量传递到Word? 如何格式化它们(粗体,宋体,红色等)? 如何保存在指定的文件名下?
这甚至有可能吗?我知道VBA非常强大,所以我希望你能帮助我! 我使用的是Office 2013,因此任何与宏编程或VBA语言相关的警告都应该考虑到这一点。
非常感谢!
在Word中创建一个预格式化的模板文档,书签中可以用Excel中的值替换。从你的问题来看,你是否需要每次创建一个新文档,或者如果你正在更新现有文档(每个人都有一个特定的文档),这并不清楚。以下是设置书签文本的方法:http://word.mvps.org/faqs/macrosvba/InsertingTextAtBookmark.htm –