运行时错误9 for Workbooks.Activate

我在尝试使用该函数时遇到了Visual Basic中的错误

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

错误说:

运行时错误9错误:下标超出范围

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

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

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

谢谢您的帮助。

关于你的问题的一些细节和它不起作用的原因:

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

  • 您的文件存在于磁盘上,但如果未打开,则Workbooks集合中不存在,因此第一步是打开它(如所示)
  • 一旦打开文件,Excel将其添加到Workbooks集合中。 您可以在VBA中突出显示单词“Workbooks”,并将其添加到Watches窗口以查看其所有项目(文件)和每个项目的属性
  • 您可以通过.Name访问集合中的项目
    • 该名称不包含path,只有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 

几件事情需要在这里修复:

  • 您在文件path中错过了冒号。 它应该是C:\ Documents和Settings \ Nega \ test.xls

  • 你在函数的名字中有一个错字 – 它应该是Workbooks

  • 你不能激活一个文件,除非它是开放的,所以首先你需要确保它已经打开。 你可以用这个命令来完成它:

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