Excel 如果Err.Description="&引用;然后。。。。。在VBscript中
我正在通过以下方式修复以下错误“datatable importsheet操作失败。文件无效”:Excel 如果Err.Description="&引用;然后。。。。。在VBscript中,excel,vbscript,qtp,hp-uft,Excel,Vbscript,Qtp,Hp Uft,我正在通过以下方式修复以下错误“datatable importsheet操作失败。文件无效”: On error resume next DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2" If Err.Description = "The DataTable.ImportSheet operation failed. Invalid file." \n "Lin
On error resume next
DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2"
If Err.Description = "The DataTable.ImportSheet operation failed. Invalid file." \n "Line (20): "DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2""." Then
list of instructions
end if
但我有一个错误:
由于语法错误,测试运行无法继续
Expected 'Then'
Line (24): "If Err.Description = "The DataTable.ImportSheet operation failed. Invalid file." \n "Line (20): "DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2""." Then".
一切看起来都很好。有什么需要帮忙的吗?我错在哪里 基本规则:
>> s = "1" & vbCrLf & "-""pi""-"
>> t = "1" & vbCrLf & "-""pi""-"
>> WScript.Echo s
>> WScript.Echo t
>> If s = t Then
>> WScript.Echo "no surprise"
>> End If
>>
1
-"pi"-
1
-"pi"-
no surprise
>>
添加:
应用于您的字符串/错误消息:
's = "The DataTable.ImportSheet operation failed. Invalid file." \n "Line (20): "DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2""."
s = "1" & vbCrLf & "2: ""3(""4""),5(""6""),""7""."
WScript.Echo s
输出:
cscript 39878005.vbs
1
2: "3("4"),5("6"),"7".
基本规则:
>> s = "1" & vbCrLf & "-""pi""-"
>> t = "1" & vbCrLf & "-""pi""-"
>> WScript.Echo s
>> WScript.Echo t
>> If s = t Then
>> WScript.Echo "no surprise"
>> End If
>>
1
-"pi"-
1
-"pi"-
no surprise
>>
添加:
应用于您的字符串/错误消息:
's = "The DataTable.ImportSheet operation failed. Invalid file." \n "Line (20): "DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2""."
s = "1" & vbCrLf & "2: ""3(""4""),5(""6""),""7""."
WScript.Echo s
输出:
cscript 39878005.vbs
1
2: "3("4"),5("6"),"7".
尝试将错误描述行替换为以下内容
If Err.Description = "The DataTable.ImportSheet operation failed. Invalid file." & vbCrLf & "Line (20): DataTable.ImportSheet Environment(" & STPFilePath & "),Environment(" & TestScriptName & ")," & Action2 & "." Then
祝你好运 尝试用以下内容替换错误描述行
If Err.Description = "The DataTable.ImportSheet operation failed. Invalid file." & vbCrLf & "Line (20): DataTable.ImportSheet Environment(" & STPFilePath & "),Environment(" & TestScriptName & ")," & Action2 & "." Then
祝你好运 我真的很纠结于你想做什么,而你的评论对我毫无帮助 使用时
On Error Resume Next
当您在执行语句时遇到错误时,将发生以下情况:
Err
将填充导致跳过语句的错误的详细信息
-引发的错误的错误代码Number
-引发错误的来源,可能是第三方库、VBScript运行时等Source
-错误的自由文本说明说明
错误号
代码
像这样的东西
On Error Resume Next
DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2"
'Check that an error occurs
If Err.Number <> 0 Then
'Identify specific error and deal with accordingly.
Select Case Err.Number
Case 20012 'Code for DataTable.ImportSheet operation failed
'List of instructions...
Case Else
'Unhandled error show to screen
MsgBox "Error: " & Err.Number & " (" & Err.Source & ") - " & Err.Description
End Select
'Finished handling the error
Call Err.Clear()
End If
出错时继续下一步
DataTable.ImportSheet环境(“STPFilePath”)、环境(“TestScriptName”)、“Action2”
'检查是否发生错误
如果错误号为0,则
'识别具体错误并进行相应处理。
选择案例错误编号
案例20012“DataTable.ImportSheet操作的代码失败
'说明列表。。。
其他情况
'未处理的错误显示到屏幕
MsgBox“Error:”&Err.Number&“(“&Err.Source&”)-“&Err.Description
结束选择
'已完成错误处理
调用Err.Clear()
如果结束
我发现最令人困惑的是这个线程中的遗漏信息
-
“我需要的是说明而不是号码,问题是在我的情况下使用Err.Details而不是Err.description。现在,它正在工作。”
对象不包含名为Err
的属性,除非这是QTP特有的属性,但到目前为止,我还无法通过快速谷歌搜索找到任何内容。因此,我无法理解你如何说“它正在工作”Details
On Error Resume Next
当您在执行语句时遇到错误时,将发生以下情况:
Err
将填充导致跳过语句的错误的详细信息
-引发的错误的错误代码Number
-引发错误的来源,可能是第三方库、VBScript运行时等Source
-错误的自由文本说明说明
错误号
代码
像这样的东西
On Error Resume Next
DataTable.ImportSheet Environment("STPFilePath"),Environment("TestScriptName"),"Action2"
'Check that an error occurs
If Err.Number <> 0 Then
'Identify specific error and deal with accordingly.
Select Case Err.Number
Case 20012 'Code for DataTable.ImportSheet operation failed
'List of instructions...
Case Else
'Unhandled error show to screen
MsgBox "Error: " & Err.Number & " (" & Err.Source & ") - " & Err.Description
End Select
'Finished handling the error
Call Err.Clear()
End If
出错时继续下一步
DataTable.ImportSheet环境(“STPFilePath”)、环境(“TestScriptName”)、“Action2”
'检查是否发生错误
如果错误号为0,则
'识别具体错误并进行相应处理。
选择案例错误编号
案例20012“DataTable.ImportSheet操作的代码失败
'说明列表。。。
其他情况
'未处理的错误显示到屏幕
MsgBox“Error:”&Err.Number&“(“&Err.Source&”)-“&Err.Description
结束选择
'已完成错误处理
调用Err.Clear()
如果结束
我发现最令人困惑的是这个线程中的遗漏信息
-
“我需要的是说明而不是号码,问题是在我的情况下使用Err.Details而不是Err.description。现在,它正在工作。”
对象不包含名为Err
的属性,除非这是QTP特有的属性,但到目前为止,我还无法通过快速谷歌搜索找到任何内容。因此,我无法理解你如何说“它正在工作”Details
If Err.Description = "The DataTable.ImportSheet operation failed. Invalid file."" \n ""Line (20): ""DataTable.ImportSheet Environment(""STPFilePath""),Environment(""TestScriptName""),""Action2""." Then
''' list of instructions
End If
此外,如果要比较if语句中的两行,则不能使用\n。使用CHR(13)
或CHR(10)
代替\n。即
If Err.Description = "The DataTable.ImportSheet operation failed. Invalid file."& CHR(13) &"Line (20): ""DataTable.ImportSheet Environment(""STPFilePath""),Environment(""TestScriptName""),""Action2""." Then
'''list of instructions
End If
再次说明:如果条件失败,则使用Err.Number会更有意义,因为上面的任何额外/缺少的空格/换行符都会使条件失败。