如何防止 Excel 绑定到 Microsoft Word 15.0 对象库?

How do I keep Excel from binding to the Microsoft Word 15.0 Object Library?

我们有一个非常复杂的 Excel 2010 电子表格模板。模板的每个新副本在其生命周期内都需要经过几个人。

不幸的是,第一批使用该模板的人之一安装了 Office 365。在他触摸它之后,电子表格似乎绑定到 Microsoft Word 15.0 对象库,该库在 Excel 2010 PC 上不可用。虽然可以通过在 VBA 代码工具 > 参考中取消选中丢失的 Word 对象库来修复单个损坏的文件,但我首先需要找到一种方法来防止这种情况发生。

我已经详细查看了代码,但找不到对 MS Word 对象库的任何引用,那么首先是什么导致 Excel 绑定到它?我能做些什么来阻止它吗?

未经测试,但在您的 Workbook_BeforeSave 活动中加入这样的内容可能会奏效:

With ThisWorkbook.VBProject.References
    For i = .Count To 1 Step -1
        If InStr(.Item(i).Name, "Word") <> 0 Then .Remove .Item(i)
    Next
End With

免责声明:我没有 Office 365,也不知道为什么它会自动添加对 Word 15.0 的引用;无论如何,上面假设它确实如此。

要删除,请放在模块内:我知道这并不能阻止它首先发生,但这可能有助于至少在下一个人之前将其删除。

Private Sub RemoveRef()
     Dim Reference As Object
     For Each Reference In ThisWorkbook.VBProject.References
           If Reference.Description = "Microsoft Word 15.0 Object library" Then
                 ThisWorkbook.VBProject.References.Remove Reference
           End If
     Next
End Sub