试试这个,它要求您对每个子节点都进行错误控制,这根本不是问题
Randall Rath编写了一个自动错误处理函数,可以为您编写行,非常好
- Sub ActiveCode()
- Dim oIDE As VBE
- Dim oPane As CodePane
- Dim oMod As CodeModule
- Dim sProc As String
- Dim lngSC As Long 'Start column
- Dim lngEC As Long 'End Column
- Dim lngSL As Long 'Start Line
- Dim lngEL As Long 'End Line
- Dim sActiveProject As String
- Dim sActModule As String
- Set oIDE = Application.VBE
- sActiveProject = oIDE.ActiveVBProject.Name
- Set oPane = oIDE.ActiveCodePane
- Set oMod = oPane.CodeModule
- sActModule = oPane.CodeModule.Name
- oPane.GetSelection lngSL, lngSC, lngEL, lngEC
- sProc = oMod.ProcOfLine(lngSL, vbext_pk_Proc)
- Debug.Print sActiveProject, sActModule, sProc
- Debug.Print Err.Number, Err.Description
-
- End Sub
在另一个模块中,我进行了测试 - Sub errTest()
- On Error GoTo Err_Control
- Dim v As Integer
- v = 1E+43
- Debug.Print v
- Exit_Here:
- Exit Sub
- Err_Control:
- Select Case Err.Number
- 'Add your Case selections here
- Case Else
-
- ActiveCode
- Err.Clear
- Resume Exit_Here
- End Select
- End Sub
|