2017-10-21 35 views
0

J'ai une feuille de calcul où si la cellule sélectionnée est B2 alors Excel sélectionnerait la plage A2: E2 mais si la valeur de B3 est la même que B2 alors la gamme serait A2: E3. J'ai besoin de ceci pour continuer aussi s'il y a des rangées dites 1, 2, 3, 4, 5, etc. avec la même valeur dans B2.sélectionnez une plage dynamique dans Excel à partir de la cellule de départ et recherchez les valeurs correspondantes dans les autres lignes

Une fois qu'il a effectué le reste de la macro je voudrais qu'il revienne ensuite à la fin de la précédente plage sélectionnée et déplacer une ligne vers le bas et répéter le processus jusqu'à ce qu'il rencontre une cellule vide dans la colonne D. example of spreadsHeet

Répondre

1

au début de votre code, créez une variable pour enregistrer l'adresse du ActiveCell:

Dim lastCell As String 
lastCell = ActiveCell.Address 

a la fin de votre code, sélectionnez cette cellule, sauf une ligne à l'aide Range:

Range(lastCell).Offset(1, 0).Select 

Ensuite, vous pouvez vérifier si la nouvelle cellule active est vide, et prendre les mesures nécessaires:

If ActiveCell.Value = "" Then 
    'cell is empty 
    Range(ActiveCell.Address).Offset(1, 0).Select 'move down another cell 
    '...do something here... 
Else 
    'cell is not empty 
    '...do something here... 
End If 
+1

Pour votre information - 'Range (ActiveCell.Address)' peut être simplifié à 'ActiveCell'. – YowE3K

+0

Ouais, beaucoup de code peut être simplifié mais plus je le fais, plus les gens semblent se plaindre ... :-) Voici le même code: 'Dim l, r: l = ActiveCell: r = Range (l) .Offset (1, 0): r.Select: Si r = '' Then Range (r) .Offset (1, 0) .Select' – ashleedawg

+0

Merci pour votre aide J'ai du mal à l'obtenir pour sélectionner la gamme de ses conclusions Colonnes A: Q. – Drewstein