2013-06-04 75 views
1

我有一個問題,我無法解決,直到現在。 我在窗體上放了一個按鈕。如果不寫代碼。我可以點擊它沒有任何問題。如果我寫了一些代碼然後評論這段代碼,我得到這個錯誤:Sub或函數未定義。我怎麼解決這個問題?vba中的子​​功能或函數未定義錯誤

Private Sub Command40_Click() 
'Dim fso As New FileSystemObject 
'Dim ts As TextStream 
'Dim Name, Line As String 
'Dim regn As New regexp 
'Dim regx As New regexp 
'Dim regend As New regexp 
'Dim regxnum As New regexp 
'Dim swknnf As Boolean 
'Dim matchkennfeld, matchstx, matchend, matchxnum As MatchCollection 
' Name = util1.fDateiName("*.DCM", "Text") 
' Set ts = fso.OpenTextFile(Name, ForReading) 
'Do While Not ts.AtEndOfStream 
' set Line = ts.ReadLine 
'regn.Pattern = "KENNFELD\s+([A-Z 0-9]*)" 
    ' regx.Pattern = "\s*(ST/X)\s*([0-9]*\.[0-9]*\s*)+" 
    ' regxnum.Pattern = "\s*[0-9]*\.[0-9]*\s*" 
    ' regend.Pattern = "\s*(END)\s*" 
' Set matchkennfeld = regn.Execute(Line) 
' Set matchstx = regx.Execute(Line) 
' Set matchend = regend.Execute(Line) 
' If matchkennfeld.Count <> 0 Then 
' swknnf = True 
' End If 
' If matchend.Count <> 0 Then 
' swknnf = False 
' End If 
' If matchstx.Count <> 0 And swknnf = True Then 
' Set matchxnum = regxnum.Execute(Mid(Trim(matchstx.Item(0)), 5)) 
' For Each Match In matchxnum 
'  MsgBox Match 
' Next Match 
' End If 
'Loop 
End Sub 

回答

1

複製現有代碼(僅限註釋行)並將其粘貼到記事本中。在設計視圖中打開您的表單。如果Property Sheet窗口已經打開,那麼只需點擊您的Command40按鈕來選擇它,否則右鍵單擊您的按鈕並選擇「Properties」。

在屬性頁的「事件」選項卡上,刪除On Click的任何現有值,然後單擊省略號按鈕(...)並選擇「代碼生成器」。這將在Sub處打開VBA編輯器,該編輯器現在定義爲該按鈕的.OnClick事件處理程序。將你的(註釋掉的)代碼粘貼在那裏。

返回訪問並驗證按鈕的On Click條目現在說[Event Procedure]。切換到窗體視圖並點擊按鈕。此時它仍然不應該做任何事情(因爲你的代碼仍然被註釋掉了),但它也不應該產生錯誤。