我不認爲答案太複雜,我必須錯過一些基本的東西。爲了給出上下文,代碼和這個宏是由一個在我開始時不再在這裏工作的員工編寫的。我每月都用了很多次,今天當我嘗試運行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