2013-04-27 4 views
1

Mon problème lors de l'utilisation de VBA consiste à créer une boucle qui copie une plage de cellules à partir d'une plage de lignes.Parcourez les lignes et copiez une plage de valeurs de cette ligne dans un tableau

La boucle doit copier une plage de cellules de la même ligne et de la même feuille de calcul vers un tableau. Cela a fonctionné pour une ligne:

CheckArr = Application.WorksheetFunction.Transpose(Worksheets("DTMs").Range("B2:F2")) 

Ce que je voudrais créer est une boucle qui le fait pour la ligne « i »

Après avoir créé un tableau avec les informations de la gamme de cellules, je compare-le avec un autre tableau. Après comparaison, je saute une ligne et répète la création du tableau. Comme ceci:

Pour i = 1 à ID_cnt -------> 'ID_cnt est la portée maximale des rangées je voudrais creux boucle

CheckArr = Application.WorksheetFunction.Transpose (des feuilles de travail ("sheet12") Range ("B (i): F (i)".))

Suivant

Cela ne fonctionne pas. Je n'ai aucune idée de comment écrire la boucle de sorte que le tableau sera créé avec l'information contenue dans la gamme de cellules (B à F) de la ligne "i" et comment répéter cela dans la boucle.

Sequence:

1) rang (i): copie (B à F) et remplir le tableau

2) Vérifier le contenu de la matrice et le comparer à une autre matrice

3) Aller Rangée (i + 1): répéter le processus.

La quantité maximale de sauts est automatiquement définie par une variable ID_cnt qui compte la quantité de lignes contenant des informations.

S'il vous plaît aidez-moi et merci à l'avance (& désolé pour le mauvais anglais)

Répondre

0

Vous pouvez définir la plage de cellules comme les suivantes:

For i = 1 to ID_cnt 

    CheckArr = Application.WorksheetFunction.Transpose(Worksheets("sheet12").Range("B" & i & ":F" & i)) 

Next 

Vous pourriez aussi faire quelque chose qui est plus propre comme :

dim myRngStr as string 
myRngStr = "B" & i & ":F" & i 
    CheckArr = Application.WorksheetFunction.Transpose(Worksheets("sheet12").Range(myRngStr)) 
+0

Merci pour votre solution, ma carrière de comparaison fonctionne comme un charme maintenant! Cudos à vous monsieur! –

0

essayez ceci:

CheckArr = Application.WorksheetFunction.Transpose(Worksheets("sheet12").Range("B" & i & ":F" & i)) 
+0

Merci pour cette version courte, vous avez tous deux fait fonctionner mon programme maintenant! –

Questions connexes