2017-12-04 16 views
0

コンボボックスであるuserformを作成しました ユーザーが選択した結果に応じて、新しいコンボボックスが表示されます。 以下は私が試した最新のテストです。 Class1モジュール内のフォームExcel VBA Userform - 動的コンボボックスで何かが変わったときにサブを実行します

Dim WB As Workbook 
Dim structSheet As Worksheet 
Dim tbCollection As Collection 


Private Sub UserForm_Activate() 
    Dim ignoreList(3) As String 

    ignoreList(0) = "main" 
    ignoreList(1) = "configurator" 
    ignoreList(2) = "create structure" 
    Set WB = Excel.ActiveWorkbook 

    For Each sheet In WB.Worksheets 
     If Not isInTable(ignoreList, sheet.Name) Then 
      supercode_box.AddItem sheet.Name 
     End If 
    Next 
End Sub 

Private Sub supercode_box_Change() 
    If Not sheetExists(supercode_box.text) Then Exit Sub 
    Set structSheet = WB.Worksheets(supercode_box.text) 

    'Dim obj As clsControlBox 

    topPos = 10 
    leftPos = 54 
    ID = 1 

    ' For ID = 1 To 2 
     Set ComboBox = createProductForm.Controls.add("Forms.ComboBox.1") 
     With ComboBox 
      .Name = "comboBoxName" 
      .Height = 16 
      .Width = 100 
      .Left = leftPos 
      .Top = topPos + ID * 18 
      .AddItem "test" 
      .Object.Style = 2 
     End With 

     Set tbCollection = New Collection 
     tbCollection.add ComboBox 

    'Next ID 
End Sub 

コードで

ユーザーが新しいコンボボックスの値を変更したとき、それは既成の機能を実行するように、私はそれを作るにはどうすればよい

/サブ

コード

Private WithEvents MyTextBox As MSForms.controlBox 

Public Property Set Control(tb As MSForms.controlBox) 
    Set MyTextBox = tb 
    MsgBox ("did it get here?") 
End Property 

Public Sub comboBoxName_Change() 
    MsgBox ("start working ffs") 
End Sub 

Public Sub comboBoxName() 
    MsgBox ("?? maybe this?") 
End Sub 

答えて

0

コードを判断するのが最も簡単な方法は、必要な値を別のワークシートに書き込むことです。

次に、変更されているかどうかを確認し、変更されている場合は、新しい値を書き込み、必要な手順を実行します。要するに

、このような何か:

Sub TestMe() 

    If Worksheets("Special").Cells(1, 1) = WB.Worksheets(supercode_box.Text) Then 
     Call TheSpecificSub 
    End If 

    Worksheets("Special").Cells(1, 1) = WB.Worksheets(supercode_box.Text) 

End Sub 
+0

はどのようにそれは私を助けていますか? ComboBoxにTestMe()サブを追加するにはどうすればいいですか? –

関連する問題