【问题标题】:I can't get this Macro to run when opening a document打开文档时我无法运行此宏
【发布时间】:2016-07-20 21:08:31
【问题描述】:
Private Sub Document_Open()
    Dim objExcel As Object
    Dim FileName As String
    Dim cc As ContentControl

    FileName = "Z:\" & "\Data.xlsx"
    Set objExcel = CreateObject("Excel.Application")
    Set exWb = objExcel.Workbooks.Open(FileName)

    For Each cc In ActiveDocument.SelectContentControlsByTag("Name")
        cc.Range.Text = exWb.Sheets("4").Cells(1, 2)
    Next

    exWb.Close
    Set exWb = Nothing
End Sub

文件保存为 Word 启用宏的模板,因此双击它会创建一个名为 Document1 的新文件,但宏似乎没有运行,因为内容控件为空白。但是,如果我通过“宏”(在开发人员下)运行相同的代码,表格就会填写。

【问题讨论】:

    标签: vba macros ms-word


    【解决方案1】:

    我发现是 Document_New 而不是 Document_Open

    Private Sub Document_New()
        Dim objExcel As Object
        Dim FileName As String
        Dim cc As ContentControl
    
        FileName = "Z:\" & "\Data.xlsx"
        Set objExcel = CreateObject("Excel.Application")
        Set exWb = objExcel.Workbooks.Open(FileName)
    
        For Each cc In ActiveDocument.SelectContentControlsByTag("Name")
            cc.Range.Text = exWb.Sheets("4").Cells(1, 2)
        Next
    
        exWb.Close
        Set exWb = Nothing
    End Sub
    

    【讨论】: