2016-01-04 4 views
1

Je veux obtenir des valeurs de toutes les cellules dans une colonne spécifique et les ajouter à une liste Voici ce que j'ai essayéBouclage Plage utilisée de la colonne spécifique dans VBA Excel

Dim rng As Range 
'here ColumnName will be like "A", "B" etc... 
'and SheetName will be like "Sheet001", "Sheett002" etc... 
rng = ThisWorkbook.Sheets(SheetName).Columns(ColumnName).UsedRange 
For Each cell In rng.Cells 
If Not cell.Value = "" Then 
ListBox1.AddItem (cell.Value) 
End If 
Next 

Mais je ne suis pas capable de déterminer comment obtenir la plage utilisée de la colonne par son nom. Les données que je veux lire sera comme celui-ci dans une feuille séparée

enter image description here

Répondre

1

UsedRange fera référence à une gamme utilisée d'une feuille. Avec le UsedRange, vous pouvez ensuite sélectionner les colonnes requises.

J'ai modifié un peu votre code. Voir ci-dessous:

Sub SomeSub() 
    Dim MySht As Worksheet 
    Dim MyRng As Range 

    Set MySht = ThisWorkbook.Sheets("Sheet1") 
    Set MyRng = MySht.UsedRange.Columns("A") 

    For Each cell In MyRng.Cells 

     If Not cell = "" Then 
      'If your List Box is in "Sheet1" 
      Sheets("Sheet1").ListBox1.AddItem (cell) 
      'If your List Box is in "UserForm1" 
      UserForm1.ListBox1.AddItem (cell) 
     End If 
    Next 

    'To clear ListBox1 data 
' Sheets("Sheet1").ListBox1.Clear 
' UserForm1.ListBox1.Clear 

End Sub 
+0

J'ai le nom de la feuille et le nom de la colonne, à partir de laquelle je dois choisir des données d'une autre feuille. comme j'ai "sheet001_A", donc je dois choisir les valeurs de toutes les cellules dans la colonne "A" de "sheet001" –

+0

@AdilWaqar En utilisant 'Sheets()' vous devez insérer le nom exact de la feuille, donc pour Sheet1 vous ne trouverez pas être capable d'utiliser sheet001. Vos données d'entrée sont-elles "sheet001_A"? –

+0

oui le nom de la feuille est exactement "sheet001" et les valeurs sont sa colonne A comme indiqué dans l'image ci-jointe en question –