返回列表 上一主題 發帖

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

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

各位前輩請問一下

如何讓ListBox顯示可以隨著儲存格(A1)內的數字變化
還是要用Textbox??

把改變的語句寫在Worksheet_Change事件裡。

TOP

我的Listbox是在useform內,所以執行都會出現錯誤

TOP

回復 3# catmm
  1. Private Sub UserForm_Initialize()
  2.     With ListBox1
  3.         .RowSource = "a1:b6"
  4.         .ColumnCount = 2
  5.     End With
  6. End Sub
複製代碼

TOP

可以用喔~~
謝謝大大~~
感恩~~

TOP

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


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

回復 6# syuan
ListBox1.List = xxxx.Value                             會固定List的值,為最初設定時xxxx的值
ListBox1.RowSource = xxxx.Address(, , , 1)   List的值,會隨xxxx的值 而改變

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

回復 8# syuan

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

dim strsht as string
strsht ="sheet1"

.....
ElseIf UserForm1.ListBox1.ListIndex = 6 And UserForm1.ListBox2.ListIndex = 1 And UserForm1.ListBox3.ListIndex = 1 Then
With UserForm2.ListBox1
     .RowSource = worksheets(strsht).range("m5:n8").address(,,,1)
     .ColumnCount = 2
     .ColumnWidths = "100"
End With
UserForm2.Show

以上回傳sheet1
把strsht="sheet1"  換成 "sheet2" 就會回傳sheet2 的
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

玩一下公共定義
切換檔案工作表試試看有甚麼差別 共用定義.rar (9.3 KB)
學海無涯_不恥下問

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題