VBA excel - 文件从网络文件夹打开时,Activate方法失败

时间:2017-09-10 08:31:24

标签: excel vba excel-vba

我有一个包含多个宏的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会询问我是否要允许编辑此文件,我选择是。

2 个答案:

答案 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的回答。

如果您确定您的文件进入的网络驱动器确实是受信任的位置,请执行以下步骤:

  1. 打开ΙnternetΕxplorer,单击“工具栏/ Internet选项”,然后选择“安全”选项卡。
  2. 我选择了Local Intranet,因为情况确实如此。
  3. 点击Sites / Advanced。
  4. 在第一个字段中写入您的文件所在的网络驱动器或文件夹的路径(并且您要将其设置为安全位置)。
  5. 点击“添加”按钮,您已做好准备。
  6. 谢谢大家的时间。