我有一个包含多个宏的excel文件。我想在文件打开时完成一些事情。我使用以下代码:
Private Sub Workbook_Open()
Worksheets(1).Activate
pass = "mits"
Worksheets(1).Range("Q2:S16").NumberFormat = "General"
Call prostasiaON(True)
End Sub
此代码使用'This_Workbook module'编写,pass
是在模块1中声明的公共变量,prostasiaON(mode as Boolean)
是执行其他操作的Sub。
当我的文件位于本地驱动器中时,它会按原样打开。如果我在网络驱动器中复制我的文件并尝试打开它,它会抛出一个
运行时错误'1004':方法激活类Worksheet失败。
在第二行。任何人都可以解释为什么会发生这种情况,我该如何避免这种情况?
编辑:在抛出此错误之前,excel会询问我是否要允许编辑此文件,我选择是。
答案 0 :(得分:1)
问题与您是否要允许编辑的问题有关,因为在您同意虽然工作簿显示已加载之前,代码实际上不会运行。如果您可以设置信任和权限以避免工作簿的不完整打开以及是否要允许编辑的问题,则不会出现此问题。
如果您无法避免此问题,您也将无法避免Activate
上发生的错误。因此,我所做的就是添加On Error Resume Next
并在没有工作表(1)的情况下在您描述的情况下激活。
答案 1 :(得分:0)
以下是解决问题的方法。我将此作为未来寻求者的参考。
在这篇文章中,我得到了一个可以匹配的解决方案: https://social.technet.microsoft.com/Forums/ie/en-US/f4c993e6-e226-4e39-8964-8f3a4b3dcf21/protected-view-for-networked-drives?forum=officeitproprevious
这种情况类似于上面的Variantus的回答。
如果您确定您的文件进入的网络驱动器确实是受信任的位置,请执行以下步骤:
谢谢大家的时间。