我正在創建用戶表單,我將使用它來插入數據,然後創建其他內容。Excel VBA:UserFom - 文本框的值取決於組合框的值
我有一個用戶窗體與組合框和幾個文本框。 ComboBox充滿了範圍內的數據。我想要根據ComboBox值更改文本框的值。文本框的值應該從工作表中填入特定的值。我想過創建For Each循環來確定所選ComboBox值的Row,然後使用Row number和設置適當的偏移量來更改TextBoxes。
工作表爲表頭和填充,如姓名,所在城市等
但是我的代碼不中用戶窗體工作數據。
任何想法什麼是錯的或可能是一個不同的方法來解決問題?
klient =組合框名
Private Sub klient_Change()
Dim MyCell As Range, MyRange As Range
Dim wiersz As Long
Set MyRange = Range("klienci")
For Each MyCell In MyRange
If klient.Value = MyCell.Value Then
wiersz = MyCell.Value
Exit For:
End If
Next
MsgBox (wiersz)
End Sub
你如何初始化組合框?像這樣'Klient.List = Range(「klienci」)'?在這種情況下,你可以像這樣使用sth從命名範圍獲得klient的索引:'Klient.ListIndex' –
@simoco我對Userforms很新穎...我的初始化是用ComboBox RowSource Property寫的。你建議把這個語句放到'Userform_initialize'中嗎? – lowak
使用'RowSource'很好:)關於你的主要問題,你可以使用這一行來獲取選定項目的組合框的範圍:'MsgBox Range(「klienci」)。Cells(1 + Klient.ListIndex,1).Address '(我想你的rowSource正好是'klienci'範圍) –