返回列表 上一主題 發帖

如何讓ListBox可以隨著儲存格內的數字變化

小弟的寫法(好像比較多了一點......)


Private Sub UserForm_Initialize()
Dim xxxx AS Range

Set xxxx = Sheets("xxxx").Range("a1:b2")  

With UserForm1.ListBox1
     .ColumnCount = xxxx.Columns.Count
     .ColumnWidths = "100"
     .List = xxxx.Value
End With
End sub


以上僅參考.....
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復 7# GBKEE
感謝GBKEE大的教導

小弟尚有一事不解

如果在EXCEL裡有好幾頁的分頁(Sheet1、Sheet2、Sheet3....),小弟在#6所寫的語法,就是因為有好幾頁的分頁,所以才這樣寫!

小弟不才,那如果想以您這句語法去修改小弟的程式時,請問要如何去改呢?
ListBox1.RowSource = xxxx.Address(, , , 1)

註:以下為小弟套用您的語法來修改,發現好像僅會秀出第一個Sheet的內容而已!
ElseIf UserForm1.ListBox1.ListIndex = 6 And UserForm1.ListBox2.ListIndex = 1 And UserForm1.ListBox3.ListIndex = 1 Then
With UserForm2.ListBox1
     .RowSource = "m5:n8"
     .ColumnCount = 2
     .ColumnWidths = "100"
End With
UserForm2.Show


以上,祝安康!
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復  syuan

你的意思是選一張表的對吧? 可以這樣的

dim strsht as string
strsht ="sheet1"

.. ...
kimbal 發表於 2010-8-31 20:04


感謝kimbal大的教導

小弟試了一下,並將您的語法稍改了一下(將宣告拿掉了)

ElseIf UserForm1.ListBox1.ListIndex = 6 And UserForm1.ListBox2.ListIndex = 2 And UserForm1.ListBox3.ListIndex = 0 Then
With UserForm2.ListBox1
     .RowSource = Worksheets("xxxx").Range("M6:N9").Address(, , , 1)
     .ColumnCount = 2
     .ColumnWidths = "100"
End With
UserForm2.Show

這樣執行後,一樣可以達到小弟原先的需求∼∼

不過小弟原先的程式是有宣告的,用您的語法後,不但行數減少了,原先的的宣告也不需要了!真是一舉數得!

不過小弟好奇的是,在.range("m6:n9")的後面有個加上.Address(,,,1)

小弟想來想去,還是不懂意思!希望您或是各位先進能幫小弟解一下惑!

祝各位中秋佳節愉快∼∼
錢是很寂莫的,所以會想辦法聚在一起!

TOP

        靜思自在 : 能幹不幹,不如苦幹實幹。
返回列表 上一主題