运行时错误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