2012-07-02 4 views
0
For indY as Integer = 1 To xLsheet.UsedRange.Rows.Count Then 
If aRndLAcctNo.Contains(xLsheet.Cells(indy + 1, 2).Value.ToString()) Then 
aRndLTotProd.Add(Indy) 
End If 
Next 

Lorsque je la règle trop sur «1000», cela fonctionne bien. Mais quand j'utilise 'To xLsheet.UsedRange.Rows.Count', une erreur se produit. Mon fichier Excel contient 16000 lignes. S'il vous plaît, aidez comment optimiser For Loop. Ou si vous pouvez suggérer une autre façon où je peux obtenir la ligne du fichier Excel qui contient un élément qui est déjà dans la liste arndLacctNo de la chaîne ..Optimisation de la boucle pour une grande quantité de données

+4

Quel type d'erreur est générée? – MarcinJuraszek

+0

Juste une supposition. Peut-être que le type de données entier est trop petit? Essayez writng: Pour indY aussi long = 1 – mortb

+3

N'est-ce pas 'Pour indY comme Integer = 1 à xLsheet.UsedRange.Rows.Count' au lieu de' Pour indY as Integer = 1 à xLsheet.UsedRange.Rows.Count Then' – invisal

Répondre

2

Le principal problème que vous avez eu ici était de ne pas étudier le texte de le message d'erreur, et accessoirement ne pas inclure le message d'erreur dans votre question ici.

Supposant vous avez reçu quelque chose comme ceci:

prog.vb (5,63) : Error VBNC30205: Expected end of statement. 

Ce vous a dit, « dans le fichier prog.vb, sur la ligne 5, dans la colonne 63, vous avez une faute de frappe, au lieu de la fin de la déclaration que vous avez quelque chose autre".

Dans mon cas, ligne 5, la colonne 63 est où Then sans un If se cache. Examinez votre propre message d'erreur, trouvez votre propre emplacement de code et supprimez le mot clé incriminé. C'est une simple erreur de syntaxe qui n'a rien à voir avec le nombre de lignes.

Questions connexes