将excel文件中的文本插入word文档(Word VBA)

时间:2017-11-25 13:35:37

标签: excel vba excel-vba ms-word

由于我的文档通常会有一些可以反复使用的短语,我想将它们全部热键以节省时间。更具体地说,我计划制作,例如,Macro1(插入“当然”),Macro2(插入“问题是”)和Macro3(插入“按时间”),热键到Alt + 1,2 ,分别为3。如果我按Alt + 2,“问题是”立即插入我的cusor。

这是我正在使用的基本宏:

Sub Macro1()
    Selection.TypeText Text:="sample text"
End Sub

问题在于任何新文档,通常需要更改Macro1,2和3的内容。我计划创建一个excel文件来容纳所有短语以便于编辑,但不知道如何将其特定单元格链接回单词宏。有没有办法做到这一点?

注意:我知道单词中的自动图文集或构建块功能,但我发现它们不像excel表那样容易编辑。

1 个答案:

答案 0 :(得分:0)

这是一个例子,假设你的Excel文件位于" C:\ temp \"和yor短语保存在第一个工作表和第一列: 此函数将从此excel文件中读取第一个单元格(A1):

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 vba中运行,您必须添加Excel引用(在Tools \ References中勾选Microsoft Excel对象库)。