2016-07-22 55 views
1

我有一個VBA表單程序,它爲兩個單獨的函數查閱兩個不同的工作簿。當我運行第一個函數時,它運行良好,然後運行第二個函數,並且它引用了後臺工作簿,並且運行良好 - 然後當我嘗試再次運行第一個程序時,出現'下標超出範圍'錯誤。我怎麼能進一步指定這個代碼回到原來的工作簿?如何進一步指定什麼工作簿被引用

Worksheets("Modified Item Extract").Range("$A$1:$CL$293662").AutoFilter  Field:=1, Criteria1:="" & PBH.Value 
+0

很難說只有一行代碼,但是您需要獲取對工作簿的引用,並使用收集的對象的工作表屬性而不是使用全局。 – Comintern

回答

2

即使最長時間最安全的方式是在以後使用範圍和單元格時始終定義工作簿和工作表。

Option Explicit 

Dim wb1 As Workbook 
Dim wb2 As Workbook 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 

Sub yourSubName() 


Set wb1 = Workbooks("Your_Workbook_Name") 
Set ws1 = wb1.Worksheets("Modified Item Extract") 

' do the same for setting wb2 and ws2 

ws1.Range("$A$1:$CL$293662").AutoFilter Field:=1, Criteria1:="" & PBH.Value 

End Sub 
相關問題