![](/img/trans.png)
[英]Excel 2013 VBA: Setting activeworkbook when clicking between workbooks
[英]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 = ActiveWorkbook
像Set test = ActiveWorkbook
記住-將子名稱更改為除test
任何名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.