我有一个函数来获取我的测试的数据表值,基于函数返回值(True或False),我正在做后续操作。函数返回值在前两次运行中成功传递,并在第3次运行期间返回空值。函数的返回值将保持不变,直到它退出函数。
请参阅下面的示例函数调用和代码。前两个函数调用Apple和Orange工作正常。第三次函数调用Banana测试失败。
调用Sample_Function(1," Apple")
调用Sample_Function(2," Orange")
调用Sample_Function(3," Banana")
Function Sample_Function(RowId,SearchCriteria)
Dim DataStatus
DataStatus = Retrieve_Excel_Data(RowId)
If DataStatus = True Then 'It returns a empty value during 3rd run
Msgbox "Sucess"
Else
Msgbox "Failed"
End If
End Function
Function Retrieve_Excel_Data(RowId)
Dim XlsStatus, Source, Target, RowCount
XlsStatus = False
DataTable.AddSheet(Target)
DataTable.ImportSheet "C:\a.xls", Source, Target
RowCount = DataTable.GetSheet(PO_Target_SheetName).GetRowCount
If RowCount < 1 then
XlsStatus = True
Retrieve_Excel_Data = XlsStatus
Else
Retrieve_Excel_Data = XlsStatus
End If
End Function`
答案 0 :(得分:1)
在第3次运行时单步执行代码会发生什么?如果您打开On Error Resume Next
并且在第3次尝试时执行Retrieve_Excel_Data
函数时出错,则会导致调用例程(在本例中为Sample_Function
)移动到下一个代码行。这可能导致变量DataStatus
无法填充。