2017-11-25 427 views
0

由于我的文档通常有一些可以反复使用的特定短语,因此我想将它们全部热键以节省时间。更具体地说,我打算让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表格。

+0

你尝试过'邮件合并'吗? – Arul

+1

还不是很清楚。你想填写word中的现有字段(如在mailmerge中),或者像手动输入时创建热键以插入短语一样? – KekuSemau

+0

是的,绝对有可能将Excel单元格的内容放入Word文档中。事实上,可能有几十种方法,每种方法都用于不同的情况。你能举出一些前后的例子吗?为什么会有**几个**宏?请提供更多信息。 – ashleedawg

回答

0

这里是一个例子,假设您的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对象库)。