Multiples loops et arrays nesteds, SubScript hors de scope

Toujours s'habituer à la gestion des arrays et des loops. Quelqu'un voudrait-il souligner le problème avec cela?

Pour l'examiner, c'est une simple boucle qui vérifie a1: a100 en feuille un et vérifie contre b1: b100 dans chaque feuille, puis envoie le count dans Sheet1! C1: c100

Merci d'avance

Private Sub TheLoops() Dim SearchArray() Dim SheetArray() Dim ColumArray() Dim ReturnArray() Dim ModCount As Long SearchArray = Sheet1.Range("a1:a100") SheetArray(0) = Sheet1 SheetArray(1) = Sheet2 SheetArray(2) = Sheet3 ColumArray = ActiveSheet.Range("b1:b100") ReturnArray = Sheet1.Range("c1:c100") ModCount = 0 For I = LBound(SearchArray) To UBound(SearchArray) For L = LBound(ReturnArray) To UBound(ReturnArray) For J = LBound(SheetArray) To UBound(SheetArray) For K = LBound(ColumArray) To UBound(ColumArray) If SearchArray(I) = ColumArray(K) Then ModCount = ModCount + 1 End If Next K Next J ReturnArray(L) = ModCount ModCount = 0 Next L Next I End Sub 

Est-ce correct?

  SearchArray = Sheet1.Range("a1:a100").Value, LBound(SearchArray, 1) For I = SearchArray(I, LBound(SearchArray, 2)) to SearchArray(I, UBound(SearchArray, 2)) etc etc etc 

Ce problème est descendu à .Range ayant une propriété par défaut appelée Value qui renvoie une Variant bidimensionnelle. Ceci est incompatible avec le type auquel vous l'affectez.

Utilisez Dim SearchArray as Variant , SearchArray = Sheet1.Range("a1:a100").Value , LBound(SearchArray, 1) suivi d'une indexing bidimensionnelle: SearchArray(I, LBound(SearchArray, 2)) .

Refactorer les autres variables d'une manière similaire.