我在Excel上創建了一個ListBox ActiveX。我想根據在列表框中選擇的內容在工作表上添加不同的數據。例如現在選擇「Semaine 48」,數據是111和222.單擊列表框時更改表單中的數據
但是我想要的不是用vba代碼設置數據,而是當用戶選擇「Semaine 47」並更改實例111在其他情況下,更改將被保存,當用戶關閉並再次打開文件時,數據仍會更改(而不是111)
您能否幫忙?
Private Sub ListBox1_Click()
Dim tableau(1, 2) As String
tableau(0, 0) = "1"
tableau(1, 0) = "2"
tableau(0, 1) = "11"
tableau(1, 1) = "22"
tableau(0, 2) = "111"
tableau(1, 2) = "222"
Dim I As Integer
I = ListBox1.ListIndex
Select Case (I)
Case Is = 0
Range("A11") = tableau(0, 0)
Range("B11") = tableau(1, 0)
Case Is = 1
Range("A11") = tableau(0, 1)
Range("B11") = tableau(1, 1)
Case Is = 2
Range("A11") = tableau(0, 2)
Range("B11") = tableau(1, 2)
End Select
End Sub
您可以使用'worksheetchange'事件根據您的列表框的選擇來更改源值...但是...如果值來自vba本身,則不可能...(好吧,有可能,但你不想要這樣) –
那最好的做法是什麼?如果我希望用戶可以根據列表框的選擇具有不同的值,並且他所做的更改已註冊?謝謝 – morg
有了sheet2中的數據...,那麼列表中的選定項目#是sheet2的行(+1)...,它有一個'worksheetchange'事件,它將把A11/B11中的變化放到相應的單元格中在sheet2中......你只需要停用它的時間你的列表將數據放在A11/B11中......我會在我回到家後立即寫一個簡短的例子...... –