我们有一个非常复杂的Excel 2010电子表格模板。模板的每个新副本在其生命周期中都需要通过几个人。
不幸的是,首批使用该模板的人之一安装了Office 365。触摸后,电子表格似乎绑定到Microsoft Word 15.0对象库,这在Excel 2010 PC上不可用。通过在VBA代码工具中取消选中缺少的Word对象库,可以修复单个损坏的文件>参考文献,我需要找到一种方法来防止这种情况发生。
我已详细阅读了代码,但我找不到对MS Word对象库的任何引用,那么是什么原因导致Excel首先绑定到它?我能做些什么来阻止它吗?
答案 0 :(得分:2)
未经测试,但在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的引用;无论如何,上面假设它确实如此。
答案 1 :(得分:1)
要删除,请放置在模块内部:我知道这不会阻止它首先发生,但这可能有助于至少在下一个人之前删除它。
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