2013-07-19 4 views
0

"아래 첨자가 범위를 벗어남"오류가 발생합니다. 나는 두 개의 학습서를 가지고있다. 통합 문서 B의 해당 시트에서 통합 문서의 각 시트에 VLOOKUP 값을 가져 오려고합니다. 첫 번째 통합 문서에 통합 문서 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 중 하나 이상 함께

어떤 조건 당신은 WorksheetFunction을 철자가 틀리 한 Left(Sheets(y).Range("A" & n), 2) Like "CA"

+1

다음 중 하나를'ActiveWorkbook'가있다

+0

ActiveWorkbook에는 y 시트가 있습니다. 활성 통합 문서의 시트 수를 X로 설정하고 y는 1에서 X까지의 값을 사용합니다. 2012SWD.xlsx가 열려 있습니다. 첫 번째 두 가지 가능성은 완전히 배제됩니다. 세 번째 가능성은 오류 메시지의 원인입니다. 존재하지 않는 시트에서 범위 변수를 설정하고 있습니다. –

+0

다른 통합 문서의 워크 시트에 대한 VBA 루프가 아니라 통합 문서 B에서 해당 워크 시트가있는 워크 시트에 대해 매크로를 개별적으로 실행하여이 문제를 해결했습니다. 워크 시트 중 하나가 일치하지 않는 경우에도 아래 첨자가 범위를 벗어납니다. 'Subscript가 범위를 벗어난 응답'을 확인할 수있는 오류 억압 기능이 있습니까? –

답변

0

입니다.

또한 "2012SWD.xlsx"통합 문서는 이미 열려 있어야하며 (통합 문서 컬렉션은 열린 통합 문서 만 참조) 확장명이 .xlsm이 아닌지 확인하십시오.

.. 그리고는, 팀은 :)을 말

+0

고마워, 그들은 너무 villian (맞춤법 오류) ... 시간의 의견 외에도 –