Vba 使用Excel中定义的范围,替换open Word文档中的[text]
我想做以下工作:Vba 使用Excel中定义的范围,替换open Word文档中的[text],vba,excel,ms-word,Vba,Excel,Ms Word,我想做以下工作: 在Excel中,创建表格并定义范围(例如A1到B13为“Arf”,保存在文件中 使用VBA,从Excel移动到打开的Word文档 在open Word文档中,搜索字符串(例如“[Table goes here]”) 用Excel定义的范围替换字串(例如,[此处表格]替换为“Arf”) 我会为许多不同的表定义许多范围,根据我在Excel中使用的预定义表,我会将定义的范围导入Word中的相应字符串 到目前为止,我已经找到了许多用于进入和更改文件位置中文本的代码,但我希望这是用于当前
Sub Replace_Word_String_with_Excel_Range()
Application.Goto Reference:="Arf"
Selection.Copy
Application(Word).Find.Replacement
With Selection.Find
.Text = "[Table goes here]"
.Replacement.value = "Arf"
End With
End Sub
我觉得我可以创建一个Excel文件和创建模板,定义表格。我会将它们全部命名(例如Arf、Bark和Woof)。我不明白的是如何通过代码将“alt tab”粘贴到Word。我的另一个困惑是如何通过Replacement.Value函数粘贴整个Excel定义的部分
如果有人能帮我解决这个问题,我将不胜感激。因为我正在积极地做这件事,我会尝试编辑这篇文章并相应地更新
谢谢!在Word中使用DocVariables。如果您不知道什么是DocVariables,只需做一些研究,看看如何设置和运行它。然后,只需运行下面的脚本,并一如既往地根据您的具体需要进行修改
Sub PushToWord()
Dim objWord As New Word.Application
Dim doc As Word.Document
Dim bkmk As Word.Bookmark
sWdFileName = Application.GetOpenFilename(, , , , False)
Set doc = objWord.Documents.Open(sWdFileName)
'On Error Resume Next
objWord.ActiveDocument.variables("FirstName").Value = Range("FirstName").Value
objWord.ActiveDocument.variables("LastName").Value = Range("LastName").Value
objWord.ActiveDocument.variables("AnotherVariable").Value = Range("AnotherVariable").Value
objWord.ActiveDocument.Fields.Update
'On Error Resume Next
objWord.Visible = True
End Sub
此代码位于Excel中。别忘了在Excel中设置对MS Word的引用。只想插话并感谢添加此代码。我需要测试它,但在过去几天里,我一直没有时间来处理该项目。我会在完成此工作后回来添加更新。再次感谢你!这对我来说很有效。谢谢你u很多!DocVariables info在理解这一切方面帮助很大。对于需要查找doc变量的任何人来说,这个问题是一个很好的起点: