Workbooks.Activate的运行时错误9

时间:2015-08-13 10:17:07

标签: excel vba excel-vba

当我尝试使用函数

时,我在Visual Basic中出错
http-proxy = "http://username:password@proxy-address.com:80/"
https-proxy = "http://username:password@proxy-address.com:80/"

错误说:

  运行时错误

错误 9 :   下标超出范围

我看到很多关于扩展的帖子,但我的文件存在且扩展名是正确的。

可能是特权问题?在这种情况下,如何在VBA中为此目录添加权限?

注意:如果我执行工作簿(" test.xls")。激活它可以工作(Ofc,将文件放入项目中)。所以我认为这是关于特权的。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

有关您的问题的一些详细信息及其不起作用的原因:

“工作簿”是当前在Excel中打开的文件集合

  • 您的文件存在于磁盘上,但如果未打开,则它在Workbooks集合中不存在,因此第一步是打开它(按照建议)
  • 文件打开后,Excel会将其添加到Workbooks集合中。您可以在VBA中突出显示“工作簿”一词,并将其添加到“手表”窗口以查看其所有项目(文件)和每个项目的属性
  • 您可以通过.Name访问集合中的项目
    • 该名称不包含路径,仅包含Name.ext
  • 如果文件尚未保存,则该名称不包含扩展名

Option Explicit

Sub wbActivate()

    Dim wb As Workbook

    MsgBox Workbooks.Count  'currently open files count: 1
    Set wb = Workbooks.Open("C:\test.xls")
    MsgBox Workbooks.Count  'currently open files count: 2

    wb.Activate                     'the file we just opened
    Workbooks("test.xls").Activate  'the file we just opened

    Workbooks("book1").Activate     'initial file (unsaved yet)

End Sub

答案 1 :(得分:0)

这里很少有事情需要解决:

  • 你错过了文件路径中的冒号。它应该是 C:\ Documents and Settings \ Nega \ test.xls

  • 您在函数名称中输入了一个拼写错误 - 它应该是Workbooks

  • 除非文件已打开,否则您无法激活文件,因此首先需要确保文件已打开。您可以使用以下命令执行此操作:

    Call Workbooks.Open("C:\Documents and Settings\Nega\test.xls").Activate
    

答案 2 :(得分:0)

您不能在workbooks.activate中使用路径名 当/因为Excelfile已经打开时,它只需要没有路径的文件名。 所以 工作簿(“C:\ MN \ DoubleClick.xlsx”)。激活将给出错误 而 工作簿(“双击工作清单BTN.xlsx”)。完美激活工作