2017-01-08 13 views
0

comboBox @ userFormの現在の文字列を(「続行」ボタンをクリックして)どのようにして、ドキュメントセルとクローズフォームをExcelに渡すのですか?VBA、MS Excel。変更時にコンボボックスの値を更新する


現在のコードが正しく動作しません。変更時にコンボボックスの値を更新せず、常に元の( "Select subtype")値を返します。

は、ここに私のモジュールコードです:

Public main As Integer, i As Integer, temp As String, x As String 

Public Sub dataValidation() 

Dim i As Integer 

For i = 3 To 22 
    Select Case Cells(i, 6).Value 
     Case "Income" 
      main = 1 
      If Cells(i, 7).Value = "" Then 
       Cells(i, 7).Value = getData 
      End If 
     Case ... 
     End Select 
Next i 

End Sub 


Public Function getData() 

    UserForm1.Show 
    x = UserForm1.cboSubtype.Value 
    getData = x 

End Function 


そして、私のフォームコード:

Private Sub UserForm_Initialize() 

With cboSubtype 
    '.Value = "Select subtype"' 

    Select Case main 
     Case 1 
      .AddItem "Parents" 
      .AddItem "Grant" 

     Case 2 
      .AddItem "Food" 
      .AddItem "Drink" 

     Case 3 
      .AddItem "Books" 
      .AddItem "Fees" 

    End Select 
End With 

End Sub 
+0

?コンボボックスから値を選択すると、何が起こりますか?あなたの関数 'getData()'の目的は何ですか? –

答えて

3

は、あなたがこれらの軽微な変更を採用することもできます

  • ユーザーフォームのコードウィンドウを達成しようとしているもの

    Private Sub Continue_Click() 
        Me.Hide 
    End Sub 
    
    Private Sub UserForm_Initialize() 
    
        With Me.cboSubtype 
         '.Value = "Select subtype"' 
    
         Select Case mainVal 
          Case 1 
           .AddItem "Parents" 
           .AddItem "Grant" 
    
          Case 2 
           .AddItem "Food" 
           .AddItem "Drink" 
    
          Case 3 
           .AddItem "Books" 
           .AddItem "Fees" 
    
         End Select 
        End With 
    End Sub 
    
  • モジュールのコード

    Option Explicit 
    
    Public mainVal As Integer 
    
    Public Sub dataValidation() 
    
        Dim i As Integer 
    
        For i = 3 To 22 
         Select Case Cells(i, 6).value 
          Case "Income" 
           mainVal = 1 
           If Cells(i, 7).value = "" Then Cells(i, 7).value = getData 
        '  Case ... 
          End Select 
        Next i 
    
    End Sub 
    
    
    Public Function getData() 
    
        With UserForm4 
         .Show 
         getData = .cboSubtype.value 
        End With 
        Unload UserForm4 
    
    End Function 
    
関連する問題