写宏过程中遇到Function函数exit的问题;怎么让程序 不继续运行exit Function 后面的语句,直接退出功能函数?
写宏过程中遇到Function函数exit的问题;怎么让程序 不继续运行exit Function 后面的语句,直接退出功能函数?
-->针对这个问题,我查看了帮助文档,里面就说是会执行后面的语句,如果按照这种节奏的话,函数递归的话,岂不是一直出不去这个函数?有没有办法可以让函数直接退出?不执行后面的语句。
是在execl里面写的宏哦
“Exit Function 语句使执行立即从一个 Function 过程中退出。程序接着从调用该 Function 过程的语句之后的语句执行。”
代码如下:
'模块分类_函数
'函数参数介绍
'dCaseA_M()初始分析数组;
'sReprot() 存储结果数组;
'iStrA_M 需要比较的初始值;
'iNumA_M 当前匹配行数;
'iCountY_M 全部匹配到的用例个数;
Function Module_Class(dCaseA_M(), sReprot_M() As String, iStrA_M As String, iNumA_M As Integer, iCountY_M As Integer)
Dim iNumA As Integer '临时计数器
Dim iNumC As Integer '临时计数器
Dim iNumB As Integer '临时计数器
Dim iNumD As Integer '临时计数器
Dim BBB As String
Dim sStrB As String
Dim sStrC As String
iNumC = 0
For iNumA = iNumA_M To iCountY_M
'按模块分类的数据类比,将 用例 月份,地市,品牌进行组合
sStrB = CStr(dCaseA_M(iNumA - 1)(1, 2)) + CStr(dCaseA_M(iNumA - 1)(1, 4)) + CStr(dCaseA_M(iNumA - 1)(1, 5))
If sStrB = iStrA_M Then
'如果是第一次写入,则直接编写,否则需要拿当前的场景编码和已经存储结果数组中场景做比较
'一致则向右添加 结果,不一致则向下添加场景
If iNum = 1 Then
'调用写入函数
BBB = ImprotReprot(dCaseA_M(), sReprot_M(), iNum_1 - 1, iNumA, True)
'记录存入结果数组的行数
iNum_1 = iNum_1 + 1
Else
sStrC = dCaseA_M(iNumA - 1)(1, 13) + dCaseA_M(iNumA - 1)(1, 14) + dCaseA_M(iNumA - 1)(1, 15) + dCaseA_M(iNumA - 1)(1, 16) + dCaseA_M(iNumA - 1)(1, 17) + dCaseA_M(iNumA - 1)(1, 18) + dCaseA_M(iNumA - 1)(1, 19) + dCaseA_M(iNumA - 1)(1, 20) + dCaseA_M(iNumA - 1)(1, 21)
For iNumB = 0 To iNum_1
'如果和结果列表中的场景,存在匹配项,则在后面进行叠加,否则向下追加
If sReprot_M(iNumB, 12) = sStrC Then
'调用写入函数
BBB = ImprotReprot(dCaseA_M(), sReprot_M(), iNumB, iNumA, False)
Exit For
End If
Next iNumB
'如果循环完毕后依然匹配不到相同场景,则在结果数组中添加一行
If iNumB >= iNum_1 Then
'调用写入函数
BBB = ImprotReprot(dCaseA_M(), sReprot_M(), iNum_1 - 1, iNumA, True)
'记录存入结果数组的行数
iNum_1 = iNum_1 + 1
End If
End If
Else
sStrB = CStr(dCaseA_M(iNumA - 1)(1, 2)) + CStr(dCaseA_M(iNumA - 1)(1, 4)) + CStr(dCaseA_M(iNumA - 1)(1, 5))
'全局判断计数器(判断被第几类模块)
iNum = iNum + 1
iNum_2 = iNum_2 + 6
'嵌套调用模块分类函数
BBB = Module_Class(dCaseA_M(), sReprot_M(), sStrB, iNumA, iCountY_M)
End If
'全部用例数过滤完毕后函数结束
If iNumA = iCountY_M Then
Exit Function
End If
Next iNumA
End Function
Sub test()
funct 16
End Sub
Function funct(ByVal i As Long) As Long
Dim k As Long
For k = 1 To i
If k > 5 Then Exit Function
Debug.Print k '''只能输出12345
Next
End Function