2014-03-27 26 views
4

我有什麼:

  1. 我在Excel VBA自定義用戶窗體。
  2. 該表單包含一個下拉列表(行業類別)和文本框(對應行業符)。
  3. 對於每個行業類別有一個產業符(類別的的縮寫版本)。
  4. 行業類別行業符將永遠是同一行的。
  5. 從單元格的名稱範圍填充下拉列表。

我需要什麼:

文本框的值必須依賴於下拉列表的價值。對於依賴於下拉列表值使用命名文本框的值的Excel VBA代碼範圍

例如當選擇工業類別時,相應的工業代碼應出現在文本框中。

我的單元結構:

柱A(產業類別):

Agriculture        
Art and photography      
Arts and theatre       
Charity and non-profit      
Corporate         
Educational and academic     

柱B(工業說明符):

ag 
ap 
at 
cn 
co 
ea 

我VB A碼:

填充下拉列表行業類別

'Populate Industry combo box. 
Dim range_c As Range 
Dim ws_c As Worksheet 
Set ws_c = Worksheets("4.1 List data") 

For Each range_c In ws_c.Range("IndustryList") 
    With Me.Industry 
    .AddItem range_c.Value 
    .List(.ListCount - 1, 1) = range_c.Offset(0, 1).Value 
    End With 
Next range_c 

文本框爲行業符

IndustrySpecifier.Value = "" 

我已經試過:

我查看了關於如何實現我需要使用什麼單獨的VBA代碼教程,但我不知道從哪裏開始使用依賴命名範圍

回答

4

你需要的東西是這樣的:

Private Sub UserForm_Initialize() 
    Dim range_c As Range 

    For Each range_c In Worksheets("4.1 List data").Range("IndustryList") 
     With Me.Industry 
     .AddItem range_c.Value 
     .List(.ListCount - 1, 1) = range_c.Offset(0, 1).Value 
     End With 
    Next range_c 
End Sub 

Private Sub Industry_Change() 
    With Me.Industry 
     If .ListIndex = -1 Then 
      IndustrySpecifier.Text = "" 
     Else 
      IndustrySpecifier.Text = .List(.ListIndex, 1) 
     End If 
    End With 
End Sub 

enter image description here

+1

完美的作品。謝謝。 –

相關問題