Recherche chaud: chien maladie de parkinson les techniques utiliséespar dali comment sauver une balène breveter une page web riz brun constipation croisiere costa 2018 dreads court et légèrement gros mètre carré en pied carré
Index Loisirs Santé Technologie

Comment sélectionner des cellules et des plages dans Excel Visual Basic

Publié:2013-02-05Source: général
Advertisement

Trois parties: la Assistance TutorialHelpful ReferenceVideo

Vous allez apprendre à sélectionner les cellules et les plages dans le langage de macro / de programmation de Excela € ™, Visual Basic, pour les sous-procédures (lignes de code).

Étapes

Partie 1 de 3: Le Tutorial

1

Utilisez les méthodes Visual Basic répertoriés dans ce tableau:

Méthode Arguments
Activer aucun
Cellules rowIndex, columnIndex
Application.Goto référence, défilement
Offset rowOffset, columnOffset
Gamme cell1 et cell1, cell2
Redimensionner rowSize, ColumnSize
Sélectionner aucun
Feuilles index (ou sheetName)
Classeurs index (ou bookname)
Fin direction
CurrentRegion aucun

1

Utilisez les propriétés Visual Basic dans ce tableau:

Propriété Usage
ActiveSheet précise la feuille active
ActiveWorkbook précise le classeur actif
Columns.Count compte colonnes dans l'élément spécifié
Rows.Count compte les lignes dans l'élément spécifié
Sélection se réfère à la plage actuellement sélectionnée

1

Utilisez l'une des exemples suivants pour sélectionner la cellule E6 sur la feuille de calcul active:

ActiveSheet.Cells (6, 5) .Select

  • -ou-

    ActiveSheet.Range ("E6"). Sélectionnez

2

Utilisez l'une des exemples suivants pour sélectionner la cellule E6 sur une autre feuille de calcul dans le même classeur:

Application.Goto ActiveWorkbook.Sheets ("Sheet2"). Cells (6, 5)

  • -ou-

    Application.Goto (ActiveWorkbook.Sheets ("Feuil2"). Range ("E6"))

    Ou, activer la feuille de calcul, puis utilisez la méthode ci-dessus pour sélectionner la cellule:

    Sheets ("Sheet2"). Activer ActiveSheet.Cells (6, 5) .Select

3

Utilisez l'une des exemples suivants: pour sélectionner la cellule A2 sur une feuille de calcul dans un autre classeur:

Application.Goto classeurs ("Book2.xls"). Sheets ("Sheet1"). Cells (2,1) ou

Application.Goto classeurs ("Book2.xls"). Sheets ("Sheet1"). Range ("A2")

  • Ou, activer la feuille de calcul, puis utilisez la méthode 1 ci-dessus pour sélectionner la cellule:

    Classeurs ("Book2.xls"). Sheets ("Sheet1"). Activer ActiveSheet.Cells (2, 1) .Select

4

Utilisez l'un des exemples suivants pour sélectionner la plage C1: D6 sur la feuille de calcul active:

ActiveSheet.Range (cellules (1, 3), des cellules (6, 4)). Sélectionnez

ActiveSheet.Range ("C1: D6") Sélectionnez.

ActiveSheet.Range ("C1", "D6"). Sélectionnez

5

Utilisez l'une des exemples suivants pour sélectionner la gamme C3: E11 sur une autre feuille de calcul dans le même classeur:

Application.Goto ActiveWorkbook.Sheets ("Feuil3") Range ("C3: E11").

Application.Goto ActiveWorkbook.Sheets ("Feuil3"). Range ("C3", "E11")

Ou, activer la feuille de calcul, puis utilisez la méthode ci-dessus pour sélectionner la gamme:

Sheets ("Feuil3"). Activer ActiveSheet.Range (cellules (3, 3), les cellules (11, 5)). Sélectionnez

6

Utilisez l'une des exemples suivants pour sélectionner la gamme E12: F12 sur une feuille de calcul dans un autre classeur:

Application.Goto classeurs ("Book2.xls") protocoles d ("Sheet1"). Range. ("E12: F12")

Application.Goto _ classeurs ("BOOK2.XLS"). Sheets ("Sheet1"). Range ("E12", "F12")

Ou, activer la feuille de calcul, puis utilisez la méthode ci-dessus pour sélectionner la gamme:

Classeurs ("Book2.xls"). Sheets ("Sheet1"). Activer ActiveSheet.Range (cellules (12, 5), les cellules (12, 6)). Sélectionnez

7

Utilisez l'une des exemples suivants pour sélectionner la plage nommée "Test1" sur la feuille de calcul active:

Range ("Test1"). Sélectionnez

Application.Goto "Test1"

8

Utilisez l'exemple suivant pour sélectionner la plage nommée "Test2" sur une autre feuille de calcul dans le même classeur:

Application.Goto Sheets ("Feuil3"). Range ("Test2")

Ou, activer la feuille de calcul, puis utilisez la méthode ci-dessus pour sélectionner la plage nommée:

Sheets ("Feuil3"). Activer Range ("Test2"). Sélectionnez

9

Utilisez l'exemple suivant pour sélectionner la plage nommée "Test3" sur une feuille de calcul dans un autre classeur:

Application.Goto _ classeurs ("BOOK2.XLS"). Sheets ("Feuil4"). Range ("Test3")

Ou, activer la feuille de calcul, puis utilisez la méthode ci-dessus pour sélectionner la plage nommée:

Classeurs ("Book2.xls"). Sheets ("Feuil4"). Activate Range ("Test3"). Sélectionnez

10

Utilisez l'exemple suivant pour sélectionner une cellule qui est trois lignes ci-dessous et quatre colonnes à la gauche de la cellule active:

ActiveCell.Offset (3, -4) .Select

Utilisez l'exemple suivant pour sélectionner une cellule qui est une ligne au-dessus et trois colonnes à droite de la cellule active:

ActiveCell.Offset (-1, 3) .Select

Remarque Une erreur se produira si vous essayez de sélectionner une cellule qui est "au large de la feuille de calcul." Le premier exemple ci-dessus va retourner une erreur si la cellule active est dans les colonnes de A à D, car le déplacement de quatre colonnes à la gauche prendrait la cellule active à une adresse de cellule non valide.

11

Utilisez l'une des exemples suivants pour sélectionner une cellule qui est cinq lignes ci-dessous et quatre colonnes à la droite de la cellule C7:

ActiveSheet.Cells (7, 3) .Offset (5, 4) .Select

ActiveSheet.Range ("C7"). Offset (5, 4) .Select

12

Utilisez l'exemple suivant pour sélectionner une plage de cellules qui est la même taille que la plage nommée "Test5" mais qui est décalée vers le bas quatre rangées et trois colonnes à droite:

ActiveSheet.Range ("Test5"). Offset (4, 3) .Select

Si la plage nommée est sur un autre (non actif) feuille de calcul, activez cette feuille de calcul d'abord, et puis sélectionnez la plage en utilisant l'exemple suivant:

Sheets ("Feuil3"). Activate ActiveSheet.Range ("Test"). Offset (4, 3) .Select

13

Utilisez l'exemple suivant pour sélectionner la plage nommée "base de données", puis étendre la sélection par cinq lignes:

Range ("Base de données"). Sélectionnez Selection.Resize (Selection.Rows.Count + 5, _Selection.Columns.Count) .Select

14

Utilisez l'exemple suivant pour sélectionner une gamme de quatre lignes en dessous et trois colonnes à la droite de la plage "base de données" nommé et comprennent deux lignes et une colonne de plus de la plage nommée:

Range ("Base de données"). Sélectionnez Selection.Offset (4, 3) .Resize (Selection.Rows.Count + 2, _Selection.Columns.Count +1) .Select

15

Utilisez l'exemple suivant pour sélectionner le syndicat (qui est, la superficie combinée) des deux plages nommées «Test» et «échantillon»:

Application.Union (Range ("Test"), Range ("échantillon")). Sélectionnez

Notez que les deux plages doivent être sur la même feuille de calcul pour que cet exemple fonctionne. Notez également que la méthode de l'Union ne fonctionne pas sur les feuilles. Par exemple, cette ligne fonctionne très bien

  • Set y = Application.Union (Range ("Sheet1! A1: B2"), Range ("Sheet1 C3: D4"))

    mais cette ligne

    Set y = Application.Union (Range ("Sheet1! A1: B2"), Range ("Sheet2 C3: D4"))

    renvoie le message d'erreur:

    La méthode de classe de l'application de l'Union n'a pas

16

Utilisez l'exemple suivant pour sélectionner l'intersection des deux plages nommées «nid» et «œufs»:

Application.Intersect (Range ("Nest"), Range ("oeufs")). Sélectionnez

Notez que les deux plages doivent être sur la même feuille de calcul pour que cet exemple fonctionne.

17

Les cinq exemples suivants dans cet article se réfèrent à l'ensemble de l'échantillon de données suivant. Chaque exemple indique la plage de cellules dans les données de l'échantillon qui seraient sélectionnés.

A1: Nom B1: Sales C1: Quantité
A2: un B2: 10 $ C2: 5
A3: b B3: C3: 10
A4: c B4: 10 $ C4: 5
A5: B5: C5:
A6: Total B6: 20 $ C6: 20

1

Utilisez l'exemple suivant pour sélectionner la dernière cellule dans une colonne contiguë:

ActiveSheet.Range ("A1"). Fin (xlDown) .Select

Lorsque ce code est utilisé avec la table de l'échantillon, la cellule A4 sera sélectionné.

2

Utilisez l'exemple suivant pour sélectionner la cellule en dessous d'une plage de cellules contiguës:. # * ActiveSheet.Range ("A1") Fin (xlDown) .Offset (1,0) .Select

Lorsque ce code est utilisé avec la table de l'échantillon, la cellule A5 sera sélectionné.

3

Utilité l'un des exemples suivants pour sélectionner une plage de cellules contiguës dans une colonne:

ActiveSheet.Range ("A1", ActiveSheet.Range ("A1"). Fin (xlDown)). Sélectionnez ou

ActiveSheet.Range ("A1:" & ActiveSheet.Range ("A1") _ End (xlDown) .Address.) .Select

Lorsque ce code est utilisé avec la table de l'échantillon, les cellules A1 à A4 seront sélectionnés.

4

Utilisez l'un des exemples suivants pour sélectionner une plage de cellules qui sont non contiguës:

ActiveSheet.Range ("A1", ActiveSheet.Range ("A65536"). Fin (xlUp)). Sélectionnez # ** ou

ActiveSheet.Range ("A1:" & ActiveSheet.Range ("A65536") _ End (xlUp) .Address.) .Select

  • Lorsque ce code est utilisé avec la table de l'échantillon, cela permet de sélectionner les cellules A1 à A6.

5

Utilisez la méthode CurrentRegion afin de sélectionner une gamme de cellules rectangulaire autour d'une cellule. La gamme sélectionnée par la méthode CurrentRegion est une zone délimitée par une combinaison de lignes et de colonnes vides. Ce qui suit est un exemple de la façon d'utiliser la méthode de CurrentRegion:

ActiveSheet.Range ("A1"). CurrentRegion.Select

Ce code permet de sélectionner les cellules A1 à C4. D'autres exemples de sélectionner la même plage de cellules sont énumérés ci-dessous:

ActiveSheet.Range ("A1", _ # * ActiveSheet.Range ("A1"). Fin (xlDown) .End (xlToRight)). Sélectionnez ou

ActiveSheet.Range ("A1:". & _ ActiveSheet.Range ("A1") Fin (xlDown) .End (xlToRight) .Address) .Select

Dans certains cas, vous pouvez sélectionner les cellules A1 à C6. Dans cet exemple, la méthode CurrentRegion ne fonctionnera pas à cause de la ligne blanche sur la ligne 5. Les exemples suivants vont sélectionner toutes les cellules:

lastCol = ActiveSheet.Range ("A1"). Fin (xlToRight) .Column LastRow = ActiveSheet.Cells (65536, lastCol) .End (xlUp) .Row ActiveSheet.Range ("A1", ActiveSheet.Cells (LastRow, lastCol) ) .Select ou

. lastCol = ActiveSheet.Range ("A1") Fin (xlToRight) .Column LastRow = ActiveSheet.Cells (65536, lastCol) .End (xlUp) .Row ActiveSheet.Range ("A1:" & _ ActiveSheet.Cells (LastRow, lastCol) .Address) .Select

6

Utilisez le tableau de l'échantillon suivant et macro exemple pour sélectionner plusieurs colonnes non contigus de longueur variable:

A1: 1 B1: 1 C1: 1 D1: 1
A2: 2 B2: 2 C2: 2 D2: 2
A3: 3 B3: 3 C3: 3 D3: 3
A4: B4: 4 C4: 4 D4: 4
A5: B5: 5 C5: 5 D5:
A6: B6: C6: 6 D6:

1

StartRange = "A1" endrange = "C1" Définir un = Range (StartRange, Range (StartRange) .End (xlDown)) Réglez b = Range (endrange, Range (endrange) .End (xlDown)) Union (a, b) .Select

Lorsque ce code est utilisé avec la table de l'échantillon, les cellules A1: A3 et C1: C6 sera sélectionné.

Ci-joint est une image d'une sélection non contiguë dans Excel.

Comment sélectionner des cellules et des plages dans Excel Visual Basic

Partie 2 de 3: Référence utiles

1

Voici une macro qui construit des références de cellules, et même si elle ne les sélectionne pas, il ne effectuer d'autres tâches utiles avec eux. Pour sélectionner, vous taperez Acell. Sélectionnez avant la If End. Voir l'article Comment utiliser "Trouver" dans Excel Macros VBA exactement pour cette modification du code ci-joint fourni.

2

Mettre en place un classeur avec Sheet1 ayant dans les cellules A1 à A60000 les valeurs 1-60000.

3

Dans le menu Excel, Préférences, définissez le développeur de ruban pour vérifier ou On, de sorte que vous pouvez travailler avec des macros. Enregistrez une macro mannequin en choisissant développeur dans le ruban, puis frapper l'icône d'enregistrement et juste sélectionner la cellule A1, puis sur Arrêter l'enregistrement.

4

Copiez le macro-dessous en utilisant Édition avancée pour un traitement de texte comme MS Word et faire un remplacer tous pour "# **" (w / o les citations et avec l'espace de fuite) sur tout l'ensemble de la sélection.

5

Copiez la sélection et de le coller sur votre macro mannequin dans Excel en choisissant le (VB) EDIT (OU) bouton icône sous développeur sur le ruban.

6

Exécutez la macro en choisissant menuitem Outils.. .. Macros et le nom de la macro, ou

7

Créer un bouton en sélectionnant l'icône de bouton à la droite de l'icône d'enregistrement, et attribuant à votre macro, puis il en appuyant sur ​​le bouton sur votre feuille de calcul pour exécuter la macro.

8

Voici la macro pour faire la remplacer tous sur (jusqu'à End Sub):

  • Sous CommandButton2_Click ()

    â € ~ affecter cette macro à un bouton vous créez

    Dim oSht comme feuille de travail

    Dim LastRow As Long, i As Long

    Dim strSearch As String

    Dim Acell Comme Range

    Réglez oSht = Sheets ("Sheet1")

    LastRow = oSht.Range ("A" et Rows.Count) .End (xlUp) .Row

    strSearch = "10000"

    Réglez Acell = oSht.Range ("A1: Un" & LastRow) .Find (Quoi: = strSearch, _

    Lookin: = xlValues, LookAt: = xlPart, SearchOrder: = xlByRows, _

    SearchDirection: = xlNext, matchcase: = False, SearchFormat: = False)

    Si Non Acell est rien alors

    MsgBox "valeur trouvée dans la cellule" et aCell.Address

    Fin si

    Exit Sub

    End Sub

9

Voici une autre macro, au lieu d'acquérir un éventail de l'utilisateur et de l'effacer avant le sélectionnant:

  • Sous EraseRange ()

    Dim UserRange que la gamme

    On Error GoTo Annulé

    Réglez UserRange = Application.InputBox _

    (Invite: = "série à effacer:", _

    Titre: = "Range Erase", _

    Default: = Selection.Address, _

    Type: = 8)

    «Type 8 se réfère à une référence de cellule, comme un objet de plage.

    »Voir l'article précité concernant les autres types.

    UserRange.Clear

    UserRange.Select

    Annulé:

    End Sub

10

L'utilisateur sélectionne la gamme avec la souris et / ou la touche SHIFT et la référence absolue apparaîtra dans la zone de saisie avant l'effacement.

11

Cette sorte de macro peut également être utilisé pour remplir une plage avec des nombres aléatoires, etc.

Partie 3 de 3: Assistance vidéo

1

Regardez comme une grande partie de la vidéo suivante que vous vous souciez de, puis revenir ici en utilisant votre clé ESC ou le bouton BACK dans votre navigateur tandis que dans YouTube.

https://www.youtube.com/watch?v=NvGv1n4TW28

Conseils

La propriété ActiveSheet peut généralement être omis, car il est implicite si une feuille spécifique est pas nommé. Par exemple, au lieu de ActiveSheet.Range ("D5") Sélectionnez vous pouvez utiliser:.. Range ("D5") Sélectionnez * La propriété ActiveWorkbook peut aussi généralement être omis. Sauf si un classeur spécifique est nommé, le classeur actif est implicite. Lorsque vous utilisez la méthode de Application.Goto, si vous souhaitez utiliser deux cellules méthodes au sein de la méthode Range lorsque la plage spécifiée est sur un autre (non actif) feuille de calcul, vous devez inclure les fiches d'objet à chaque fois. Par example:

Application.Goto Sheets ("Sheet1"). Range (_ Sheets ("Sheet1"). Range (Sheets ("Sheet1"). Cells (2, 3), _ Sheets ("Sheet1"). Cells (4, 5) ))

Pour tout article entre guillemets (par exemple, la plage nommée «Test»), vous pouvez également utiliser une variable dont la valeur est une chaîne de texte. Par exemple, au lieu de

ActiveWorkbook.Sheets ("Sheet1"). Activez vous pouvez utiliser

ActiveWorkbook.Sheets (myVar) .Activate où la valeur de myVar est «Sheet1».

[Rédacteur: Admin]
Je vous imagine comme

Articles recommandés

Cliquez Top Ranking