将Excel文件中的文本插入Word文档(Word VBA)
问题描述:
由于我的文档通常有一些可以反复使用的特定短语,因此我想将它们全部热键以节省时间。更具体地说,我打算让Macro1(插入“当然”),Macro2(插入“问题是”)和Macro3(插入“到时间”),热键Alt + 1,2 ,分别为3。如果我按Alt + 2,“问题是”立即插入到我的cusor中。将Excel文件中的文本插入Word文档(Word VBA)
下面是我使用的基宏:
Sub Macro1()
Selection.TypeText Text:="sample text"
End Sub
问题为任何新的文档,宏1,2的内容,和3经常会需要改变。我打算创建一个excel文件来容纳所有的短语以方便编辑,但不知道如何将其特定单元格链接回宏单词。有没有办法做到这一点?
注意:我知道Word中的自动图文集或Building Block功能,但我不觉得它们很容易编辑为Excel表格。
答
这里是一个例子,假设您的Excel文件位于“C:\ temp \”,并且您的短语保存在第一个工作表和第一列中: 此函数将从此Excel文件中读取第一个单元格:
Function Read_Excel_Cell(cellRin As Long) As String
Dim oExcel As Excel.Application
Dim myWB As Excel.Workbook
Set oExcel = New Excel.Application
Set myWB = oExcel.Workbooks.Open("C:\temp\phrases.xlsx")
Read_Excel_Cell = myWB.Sheets(1).Cells(cellRin, 1)
myWB.Close
Set myWB = Nothing
Set oExcel = Nothing
End Function
,这个宏将其插入到文档中:
Sub InsertText1()
Selection.TypeText Text:=Read_Excel_Cell(1)
End Sub
所以,你可以用这种方式尽可能多的宏,你需要创建并使用相同的功能Read_Excel_Cell(),您可以参考,另一个行。
要使Word在Word vba中运行,您必须添加Excel参考(在工具\引用中勾选Microsoft Excel对象库)。
你尝试过'邮件合并'吗? – Arul
还不是很清楚。你想填写word中的现有字段(如在mailmerge中),或者像手动输入时创建热键以插入短语一样? – KekuSemau
是的,绝对有可能将Excel单元格的内容放入Word文档中。事实上,可能有几十种方法,每种方法都用于不同的情况。你能举出一些前后的例子吗?为什么会有**几个**宏?请提供更多信息。 – ashleedawg