Comment choisissez-vous la totalité de la feuille excel avec Plage à l'aide de la Macro en VBA?
J'ai trouvé une solution similaire à cette question en c#...
Voir le lien ci-dessous
Comment Sélectionner toutes les cellules dans une feuille de calcul Excel.Objet Range de c#?
Quelqu'un aurait-il un extrait de le faire en VBA? Je ne suis pas vraiment familier avec VBA, donc ce serait utile. Voici ce que j'ai eu jusqu'à présent...
Je sélectionne les données normalement en utilisant les touches "ctrl+maj plus de flèche, flèche vers le bas" pour sélectionner l'intégralité d'une plage de cellules. Lorsque je l'exécute dans une macro-il des codes de sortie A1:Q398247930, par exemple. J'ai besoin d'être
.SetRange Range("A1:whenever I run out of rows and columns")
C'est très simple, et j'ai facilement pu le faire moi-même sans une macro, mais je suis en train de rendre l'ensemble du processus d'une macro, et c'est juste un morceau de lui.
Sub sort()
'sort Macro
Range("B2").Select
ActiveWorkbook.Worksheets("Master").sort.SortFields.Clear
ActiveWorkbook.Worksheets("Master").sort.SortFields.Add Key:=Range("B2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Master").sort
.SetRange Range("A1:whenever I run out of rows and columns")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
edit:
Il y a d'autres parties où je pourrais avoir besoin d'utiliser le même code, mais la gamme est de dire "C3:la Fin de lignes & colonnes". Est-il possible en VBA pour obtenir l'emplacement de la dernière cellule dans le document?
Merci!
Vous devez vous connecter pour publier un commentaire.
Je crois que vous le souhaitez à trouver l'actuelle région de A1 et les cellules environnantes - pas nécessairement toutes les cellules de la feuille.
Si oui: il suffit d'utiliser...
Range("A1").CurrentRegion
CurrentRegion
Vous pouvez simplement utiliser
cells.select
pour sélectionner tous cellules dans la feuille de calcul. Vous pouvez obtenir une adresse valide en disantRange(Cells.Address)
.Si vous voulez trouver le dernier
Used Range
où vous avez fait quelques modification de mise en forme ou saisissez une valeur dans vous pouvez appelerActiveSheet.UsedRange
et sélectionnez-le à partir de là. Hope qui aideCells.Select
si vous voulez juste la plage.Cells
seul vous donnera la gamme.vous pouvez utiliser toutes les cellules comme un objet comme celui-ci :
X est maintenant un objet range qui contient l'intégralité de la feuille de calcul
vous avez quelques options ici:
Personnellement, j'utilise la Plage Utilisée et de trouver la dernière ligne et de colonne de la méthode, la plupart du temps.
Voici comment vous le feriez à l'aide de la UsedRange propriété:
Cette instruction permet de sélectionner tous utilisé est comprise dans la feuille de calcul, remarque que, parfois, cela ne fonctionne pas très bien, si vous supprimez des colonnes et des lignes.
L'alternative est de trouver la dernière cellule utilisée dans la feuille de calcul
Ce que ce code est en train de faire:
Dim rngTemp As Range
Je recommande l'enregistrement d'une macro, comme trouvé dans ce post;
Excel macro VBA pour filtrer les enregistrements
Mais si vous êtes à la recherche pour trouver la fin de vos données et non pas la fin du classeur nécessaire, si il n'y a pas de cellules vides entre le début et la fin de vos données, j'ai souvent utiliser quelque chose comme cela;
Vous êtes de gauche avec R = le numéro de la ligne au bout de vos données se termine. Cela pourrait être utilisé pour la colonne en tant que bien, et puis vous pouvez utiliser quelque chose comme les Cellules(C , R).Sélectionnez, si vous faite C la colonne de la représentation.
Voici ce que j'ai utilisé, je sais qu'il pourrait utiliser un peu de perfectionner, mais je pense que ça va aider les autres...
Peut-être que cela peut fonctionner:
Sh.Range("A1", Sh.Range("A" & les Lignes.Le comte).End(xlUp))
Se référant à la première question, je suis à la recherche dans le même.
Le résultat que j'obtiens, l'enregistrement d'une macro, est, en commençant par la sélection de la cellule A76:
À utiliser avec ActiveSheet:
Une autre façon de sélectionner toutes les cellules à l'intérieur d'une gamme, tant que les données sont contiguës, est d'utiliser
Range("A1", Range("A1").End(xlDown).End(xlToRight)).Select
.J'ai trouvé que la Feuille de calcul ".UsedRange" la méthode est supérieure dans de nombreux cas à résoudre ce problème.
J'ai lutté avec une troncature problème qui est un comportement normal de l' ".CurrentRegion" la méthode. À L'Aide De [ Worksheets("Feuil1").Range("A1").CurrentRegion ] ne donne pas les résultats que j'ai souhaité lorsque la feuille de calcul se compose d'une colonne avec des espaces vides dans les lignes (et les blancs sont recherchés). Dans ce cas, l' ".CurrentRegion" tronque sur le premier enregistrement. J'ai mis en place un travail autour de mais récemment trouvé un encore mieux; voir code ci-dessous qui permet de copier l'ensemble d'une autre feuille ou pour identifier l'adresse réelle (ou simplement des lignes et des colonnes):