2016-07-06 24 views
0

最近excel vbaの学習を開始しましたが、現時点では、ユーザーフォームのExcel VBAからパブリックサブルーチンを呼び出すことに固執しています。私はサブルーチンをモジュールに入れようとしていましたが、それでもまだエラーが出ます。(サブ関数または関数定義されていません)userform Excel VBAでパブリックサブルーチンを呼び出す

正しい方向に導くことができますか?

機能自体ここでのModule1

Public Sub Check(j As Integer) 
If Worksheets("VBA").Cells(j, 19).Value = "Y" Then 
    imgA.Visible = True 
    imgB.Visible = False 
    imgC.Visible = False 
    imgD.Visible = False 
ElseIf Worksheets("VBA").Cells(j, 19).Value = "N" Then 
    imgA.Visible = False 
    imgB.Visible = True 
    imgC.Visible = False 
    imgD.Visible = False 
ElseIf Worksheets("VBA").Cells(j, 19).Value = "X" Then 
    imgA.Visible = False 
    imgB.Visible = False 
    imgC.Visible = True 
    imgD.Visible = False 
ElseIf Worksheets("VBA").Cells(j, 19).Value = "F" Then 
    imgA.Visible = False 
    imgB.Visible = False 
    imgC.Visible = False 
    imgD.Visible = True 
End If 
End Sub 

に私がユーザーフォームあなたの現在の問題に解答するものではない

Private Sub UserForm_Initialize() 
     Call Check(i) 
    End Sub 
+0

てみ 'コールModule1.Check(I)' – Dave

+0

は(私はどこから来るん)?あなたが投稿した以上のコードはありますか? – Absinthe

+0

私はそれ以前に試したことがあります "メソッドまたはデータメンバーが見つかりません" – John

答えて

2

でそれを呼び出しています。ただ、提案:あなたがサブUserForm_InitializeのCallチェック(i)を呼び出すと

Public Sub Check(j As Integer) 
    Dim v 
    v = Worksheets("VBA").Cells(j, 19).Value 

    imgA.Visible = (v = "Y") 
    imgB.Visible = (v = "N") 
    imgC.Visible = (v = "X") 
    imgD.Visible = (v = "F") 

End Sub 
+0

短く素敵できれいです –

関連する問題