2016-01-04 100 views
1

我想要得到的所有单元格值在特定列,并将它们添加到列表 这是我曾尝试遍历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 

但我不是能够确定如何根据其名称获得已使用的列的范围。 我要读出的数据将是这样在一个单独的片

enter image description here

回答

1

UsedRange将指的片材的使用范围。随着UsedRange,您可以选择所需的列。

我修改了一下你的代码。见下:

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

我有工作表名称和列名称,从中我必须从另一个工作表中选择数据。就像我有“sheet001_A”,所以我必须选择“sheet001”的列“A”中的所有单元格的值 –

+0

@AdilWaqar使用'Sheets()'您需要插入表的确切名称,因此对于Sheet1能够使用sheet001。您的输入数据是“sheet001_A”吗? –

+0

是表单名称完全是“sheet001”,值是它的A列,如问题 –