2013-07-19 4 views
0

Je reçois une erreur "Indice hors limites". J'ai deux cahiers d'exercices. J'essaie de VLOOKUP valeurs dans chaque feuille de classeur A de sa feuille correspondante dans le classeur B. Les noms de feuille sont les mêmes dans les deux classeurs sauf que le premier classeur a des feuilles supplémentaires sans feuilles correspondantes dans classeur B. Où vais-je faux.VLOOKUP avec une autre feuille de calcul

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 

Le problème est avec l'un des plusieurs des lignes 1,2,3,4

est une condition Left(Sheets(y).Range("A" & n), 2) Like "CA"

+1

Soit: 'a ActiveWorkbook'

+0

ActiveWorkbook possède des feuilles y, car j'ai défini le nombre de feuilles du classeur actif sur X et y prend les valeurs comprises entre 1 et X. 2012SWD.xlsx était ouvert. Les deux premières possibilités sont totalement exclues, la troisième possibilité mise en évidence par vous est la cause du message d'erreur. Je définis une variable de plage avec une plage sur une feuille qui n'existe pas. –

+0

J'ai résolu le problème en exécutant la macro individuellement pour les feuilles de calcul qui ont une feuille de calcul correspondante dans le classeur B au lieu d'avoir la boucle VBA pour les feuilles de calcul dans un autre classeur. Même si l'une des feuilles de calcul ne correspond pas, l'indice hors limites apparaît. Existe-t-il une fonction de suppression d'erreur capable de vérifier les réponses 'SubScript hors limites'? –

Répondre

0

Vous avez mal orthographié WorksheetFunction.

En outre, le classeur "2012SWD.xlsx" doit déjà être ouvert (la collection Classeurs ne fait référence qu'aux classeurs ouverts) et vérifiez que son extension n'est pas .xlsm (ou une autre).

..et, ce que Tim a dit :)

+0

Merci, ils étaient aussi un méchant (l'orthographe) ... En plus des commentaires de Time –

Questions connexes