2016-04-29 64 views
0

我有一個名爲listbox1的列表框,它向我顯示了sheet1中的數據,但問題是它沒有向我顯示所有的數據,有時我有3000行數據,它顯示我anlo前50線,這是我使用的,如果有人可以幫助請代碼:VBA - 列表框和數據

ListBox1.List = Sheets("Sheet1").Range("A1:F3000").Value 
+0

'ListBox'只會將「A」列數據添加到列表框中。如果在特定單元格中找不到其他數據,則ListBox條目也將爲空。第50行之後是否有數據? –

+0

是行50後有數據但它不顯示它在列表框 – mateos

回答

0

,如果你需要從一列DATAS只有這樣,你會去:

ListBox1.List = Application.Transpose(Sheets("Sheet1").Range("A1:A3000")) '<== change "A"s in Range("A1:A3000") to wanted column index 

否則,如果要列出從數據更多列你必須這樣去:

Private Sub UserForm_Initialize() 

Dim Data As Variant 
... 
Data = Sheets("Sheet1").Range("A1:F3000") 
With UserForm1.ListBox1 '<== change it with actual UserForm and ListBox names 
    .ColumnCount = 2 
    .List = Data 
End With 

但你可以選擇一個或多個(最多ListBoxMultiSelect屬性設置)整個行,而不是單一的「細胞」。

+0

thanx它的工程很好 – mateos

0

嘗試將列表框的屬性更改爲您所需的範圍。然後改變ColumnCount至6

即: RowSource Properties

爲了使對ColumnCount性態的RowSource動態,輸入端6和刪除RowSource屬性的範圍內,這個代碼添加到形式。

Private Sub UserForm_Initialize() 
    ListBox1.RowSource = Sheets("Sheet1").Range("A1:F3000").Address(external:=True) 
End Sub 
+0

thanx Kyloren它的作品也 – mateos

+0

很高興我有些幫助。 – 2016-04-29 09:54:51

+0

這個工作_「在設計時間_」(當你正在編寫代碼時你也設置屬性)或_「運行前」_(打開VBA IDE並在運行宏之前設置屬性)。如果數據結構永遠保持不變** _,那麼_「在設計時間」_方法可以做(儘管我不推薦它)。相反,如果您希望(或需要)更靈活,並讓您的宏以運行時遇到的任何數據結構運行,那麼您必須根據我的答案採取行動,並根據一些檢查數據結構並設置列表框屬性的標準進行增強。做你的選擇,並相應地標記答案... – user3598756