我的代码功能是通过/失败列中提取所有具有“失败”的贷款,并将条件复制到另一个工作簿。我的问题是,确定通过/失败的公式要求贷款编号位于条件列之一中,否则它将返回“错误2023”的值。
在下面的代码中,由于“错误2023”,我收到类型不匹配错误。我最初的想法是使用“On Error Resume Next”,以便如果我的值= Error 2023,它将转到下一行并绕过该错误,仅拉出失败......但是我是错误处理的新手也不知道该怎么写。这是解决此问题的正确方法吗?
assignmentRow = 4
For x = 4 To lastRow
Windows("POC Results.xlsm").Activate
If Range("BE" & x).Value = "Fail" Then 'goes through workbook checking for "Fail"
Range("B" & x, "F" & x).Copy 'copies first criteria and pastes
Windows("Failed Audit Assigments.xlsm").Activate
Sheets("POC").Range("B" & assignmentRow).PasteSpecial Paste:=xlPasteValues
Windows("POC Results.xlsm").Activate
Range("BF" & x).Copy 'copies 2nd criteria and pastes
Windows("Failed Audit Assigments.xlsm").Activate
Sheets("POC").Range("G" & assignmentRow).PasteSpecial Paste:=xlPasteValues
assignmentRow = assignmentRow + 1
End If
Next x
最佳答案
根据您对另一个答案的最新评论,您可以在检查该单元格是否包含“失败”之前,在独立的代码行中检查错误。
assignmentRow = 4
For x = 4 To lastRow
Windows("POC Results.xlsm").Activate
If Not IsError(Range("BE" & x).Value) Then 'check for cell error value first
If Range("BE" & x).Value = "Fail" Then 'goes through workbook checking for "Fail"
Range("B" & x, "F" & x).Copy 'copies first criteria and pastes
Windows("Failed Audit Assigments.xlsm").Activate
Sheets("POC").Range("B" & assignmentRow).PasteSpecial Paste:=xlPasteValues
Windows("POC Results.xlsm").Activate
Range("BF" & x).Copy 'copies 2nd criteria and pastes
Windows("Failed Audit Assigments.xlsm").Activate
Sheets("POC").Range("G" & assignmentRow).PasteSpecial Paste:=xlPasteValues
assignmentRow = assignmentRow + 1
End If
End If
Next x
检查单元中的错误值应独立进行;不能与其他标准一起使用
And
串在一起。
关于excel - VBA错误处理: How to bypass line that has error and stops code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722297/