当我尝试使用函数
时,我在Visual Basic中出现了错误Workbooks("C:Documents and SettingsNegatest.xls").Activate
错误提示:
Error 9 in run time Error:下标超出范围.
我看到很多关于扩展名的帖子,但我的文件存在并且扩展名是正确的。
是特权的问题吗?在这种情况下,我如何在VBA中为这个目录添加特权?
注意:如果我做Workbooks("test.xls")。激活它工作(Ofc,与文件进入项目)。因此,我认为这是关于特权的。
谢谢你的帮助
关于你的问题和它不起作用的原因的一些细节:
"Workbooks"是当前在Excel中打开的文件的集合
- 你的文件存在于磁盘上,但如果没有打开,它不存在于工作簿集合中,所以第一步是打开它(按建议)
- 文件打开后,Excel将其添加到工作簿集合中。你可以在VBA中突出显示单词"Workbooks",并将其添加到"监视"窗口中,以查看其所有项目(文件)和每个项目的属性
- 您可以通过。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
这里有几件事需要修正:
-
文件路径中缺少冒号。应该是C:Documents and SettingsNegatest.xls.
-
函数名中有一个错字,应该是
Workbooks
-
你不能激活一个文件,除非它是打开的,所以首先你需要确保它已经打开。您可以使用以下命令:
Call Workbooks.Open("C:Documents and SettingsNegatest.xls").Activate
不能在workbooks.activate中使用路径名当/因为Excelfile已经打开时,它只需要文件名而不需要路径。所以手册("C: MN DoubleClick.xlsx")。激活将给出错误而工作簿("双击工作列表BTN.xlsx")。激活将工作完美