我有一些代码,其功能是提取所有有"失败"在通过/失败列中并将标准复制到另一个工作簿。我的问题是确定通过/失败的公式要求贷款号在其中一个条件列中,否则它返回"错误2023"的值。
使用我的下面的代码,由于"错误2023"我得到类型不匹配错误。我最初的想法是使用" On Error Resume Next"因此,如果我的值=错误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
答案 0 :(得分:3)
根据您最近对其他答案的评论,您可以在检查单元格是否包含失败之前检查独立代码行上的错误。
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
的其他标准串联起来。
答案 1 :(得分:1)
您可以使用IsEmpty()
函数来确定范围是否为空,作为测试,而不是处理错误。