Vba 我在使用调用函数时遇到问题
我看过很多关于调用另一个sub的视频。但是每次它到达应该调用函数的行时,我都会使用我的代码。它只是完成了IF语句,而没有执行此命令。请注意,此代码来自userforum中的commandbuttonVba 我在使用调用函数时遇到问题,vba,Vba,我看过很多关于调用另一个sub的视频。但是每次它到达应该调用函数的行时,我都会使用我的代码。它只是完成了IF语句,而没有执行此命令。请注意,此代码来自userforum中的commandbutton Sub Begin_Click() Unload BeginTheCode Dim ws As Worksheet Dim strDataRange As Range Dim keyRange As Range Dim wbk As Workbook Dim wbkName As String
Sub Begin_Click()
Unload BeginTheCode
Dim ws As Worksheet
Dim strDataRange As Range
Dim keyRange As Range
Dim wbk As Workbook
Dim wbkName As String
Dim wsName As String
Dim mName As String
Dim yName As String
Dim cName As String
On Error GoTo Err
'This command puts the other code in this workbook on hold'
Application.DisplayAlerts = False
'This provides shortcuts for future use in the code'
Set wa = ThisWorkbook.Worksheets("RE-I-A Raw")
Set wb = ThisWorkbook.Worksheets("I-A Data Copy (1)")
Set wc = ThisWorkbook.Worksheets("Untied Raw")
Set wd = ThisWorkbook.Worksheets("Blanks")
Dim IMRCCSpec() As String
Dim IMRSup() As String
Dim x As Integer
Dim y As Integer
Dim i As Integer
If Comittee = "IMRCC" Then
Call IM
Else
If Comittee = "COO" Then
Call COO
Else
If Comittee = "CFO" Then
Call CFO
Else
If Comittee = "AURA" Then
Call AURA
Else
If Comittee = "Distribution" Then
Call Dist
Else
If Comittee = "Legal" Then
Call Legal
End If
End If
End If
End If
End If
End If
Exit Sub
Err:
MsgBox "Error on Line : Sub Begin_Click() " & Erl
End Sub
没有出现错误消息。当我使用F8命令时,它会毫无错误地通过这一行,并且不会执行任何操作您不需要使用单词
Call
来调用子例程,因此您可以将其取出。另外,当您单步查看时,committee
的值是多少?此外,您应该在任何例程(在模块顶部)之前添加Option Explicit
,并确保声明了所有变量。此外,请研究使用Select Case
而不是嵌套的If
语句。它会更干净。子系统(IM、CDO、CFO等)之间的差异在哪里?似乎您可以创建一个子项并将Committee作为参数传递。除了上面的注释外,似乎Begin\u Click
包含许多在模块中从未使用过的声明和变量设置。把它扔掉。这只会让人困惑。(如果您出于发布目的删除了模块中的一些代码,则忽略此注释)。您不需要使用Call
来调用子例程,因此您可以将其删除。另外,当您单步查看时,committee
的值是多少?此外,您应该在任何例程(在模块顶部)之前添加Option Explicit
,并确保声明了所有变量。此外,请研究使用Select Case
而不是嵌套的If
语句。它会更干净。子系统(IM、CDO、CFO等)之间的差异在哪里?似乎您可以创建一个子项并将Committee作为参数传递。除了上面的注释外,似乎Begin\u Click
包含许多在模块中从未使用过的声明和变量设置。把它扔掉。这只会让人困惑。(如果出于发布目的删除了模块中的部分代码,则忽略此注释)。
Sub IM()
On Error GoTo Err
Dim IMRCCSpec() As String
Dim IMRSup() As String
Dim x As Integer
Dim y As Integer
x = Application.WorksheetFunction.CountA(wt.Range("C:C")) - 2
y = Application.WorksheetFunction.CountA(wt.Range("E:E")) - 2
ReDim IMRCCSpec(x) As String
ReDim IMRCCSup(y) As String
Dim i As Integer
For i = 0 To x
IMRCCSpec(i) = wt.Range("A" & i + 2)
Next i
For i = 0 To y
IMRCCSup(i) = wt.Range("B" & i + 2)
Next i
'Call Something
Exit Sub
Err:
MsgBox "Error on Line : Sub IM()" & Erl
End Sub