我不认为答案太复杂,我必须错过一些基本的东西。为了给出上下文,代码和这个宏是由一个在我开始时不再在这里工作的员工编写的。我每月都用了很多次,今天当我尝试运行VBA脚本时,它突然给了我一个错误。VBA运行时错误91.故障设置对象变量
它给了我标准Run Time Error 91 (Object variable or block variable not set)
。代码具体为:
Dim DataBook As Workbook
Set DataBook = Workbooks.Open(Import_File_Path)
DataBook.Worksheets("Sheet1").Name = "Database"
Application.DisplayAlerts = False
Tool.Worksheets("Database").Delete <-----highlighted error line
Application.DisplayAlerts = True
DataBook.Worksheets("Database").Move before:=Tool.Worksheets(1)
所述VBA脚本试图从我已经生成的Excel工作表取原始数据,并导入文件(从而在Set
线的那部分),并执行多个计算的从那里创建更多的数据和统计信息。然而,我感到的问题在于我在这里发布的部分以及对象和变量。
突出显示的错误行是说Tool.Worksheets("Database").Delete
。当我向该行添加Watch时,值为Object Variable or With block variable not set
。这让我相信有些东西没有被设置为应该作为一个对象,但我又是一个VBA新手,我对我的任何直觉都没有信心。
对于它的价值,我应该提到我添加了另一个Watch
以表示DataBook.Worksheets("Sheet1").Name = "Database"
和该州的值为Subscript out of range
。我认为这意味着它也可能是一个问题,但是我100%确定在我导入的文件中有一个选项卡,名称为Sheet1
。
是什么工具?它是什么样的对象? –
工具目前定义为“As ThisWorkbook”。 – user3494029