2013-07-19 37 views
0

我收到「下標超出範圍」錯誤。我有兩本練習冊。我正在嘗試將VLOOKUP值從工作簿B的相應工作表中放入每張工作簿A.工作簿中的工作表名稱相同,但第一個工作簿在工作簿B中有一些沒有相應工作表的附加工作表。我要去哪裏錯誤。VLOOKUP With Another Worksheet

Sub Update1() 

Dim x As Integer 
Dim y As Integer 
x = ActiveWorkbook.Sheets.Count 

For y = 1 To x 

    Dim wsheet As String '1 
    Dim wrange As Range  '2 
    wsheet = ActiveWorkbook.Worksheets(y).Name '3 
    Set wrange = Application.Workbooks("2012SWD.xlsx").Worksheets(wsheet).Range("A1:G100") '4 
    For n = 1 To 100 
     If SOME CONDITION Then 
      Sheets(y).Range("T" & n).Value = WorsheetFunction.VLookup("A" & n, wrange, 3, False) 
     End If 
    Next n 

Next y 


End Sub 

問題是與更多的行1,2,3,4之一

某些條件Left(Sheets(y).Range("A" & n), 2) Like "CA"

+1

或者:'ActiveWorkbook'有

+0

ActiveWorkbook有y張,cos我將活動工作簿中的張數設置爲X,y取值爲1到X. 2012SWD.xlsx已打開。前兩種可能性被完全排除,您突出顯示的第三種可能性是錯誤信息的原因。我在不存在的工作表上設置範圍變量。 –

+0

我解決了這個問題,單獨爲在工作簿B中具有相應工作表的工作表單獨運行宏,而不是在其他工作簿中的工作表中使用VBA循環。即使其中一個工作表沒有匹配,下標超出範圍也會顯示。是否有任何錯誤抑制功能可以檢查'SubScript超範圍響應'? –

回答

0

你拼錯WorksheetFunction

另外,工作簿「2012SWD.xlsx」需要已經打開(工作簿集合僅指開放工作簿),並檢查其擴展名是不是.xlsm(或其他)。

..和什麼蒂姆說:)

+0

謝謝,他們也是一個小姐(拼寫錯誤)......除了時間的評論 –