簡體   English   中英

如何使用 ActiveWorkbook/Workbooks(name) 而不會在 Excel 2013 VBA 中出現運行時錯誤 91?

[英]How can I use ActiveWorkbook/Workbooks(name) without getting a Runtime Error 91 in Excel 2013 VBA?

雖然這不是我第一次寫這樣的宏,但我似乎無法弄清楚我是如何讓它工作的。 我在下面有一個我認為應該有效但無效的片段。

我的問題是,雖然在我工作日開始時,剪輯只工作了一次,但之后我總是收到運行時錯誤 '91: object variable or with-block variable not set錯誤消息。

我打開了兩個工作簿,並在啟動宏之前選擇了要手動處理的工作簿中的單元格。

Option Explicit
Sub test()

Dim source, sheet As Worksheet
Dim sourcename As String
Dim targetname As String
Dim test As Workbook
Workbooks("Test.xlsm").Activate
test = ActiveWorkbook
Debug.Print (test.Name)

sourcename = "Tabelle1"
targetname = "Tabelle2"

Set sheet = ActiveWorkbook.Worksheets(sourcename)
Set source = ActiveWorkbook.Worksheets(targetname)

Debug.print(sheet.Name)
Debug.print(source.Name)

End Sub

錯誤發生在包含test = ActiveWorkbook的行中

編輯:在初始Set錯誤被修復后,工作變量仍然是空的,因此每個都導致了這種類型的另一個錯誤。

這里有什么問題,我該如何解決?

這里有兩個問題:

1st-不要給變量和子都賦予相同的名稱,兩者都有“測試”

2nd-在此行之前添加Set test = ActiveWorkbookSet test = ActiveWorkbook

記住-將子名稱更改為除test任何名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM