处理`运行时错误1004:复制过滤的表格单元时没有找到单元格

时间:2017-07-20 17:28:11

标签: excel-vba runtime-error vba excel

我有一个复制表的指定单元格的过程,这些单元格在3个循环中标识。有时不会有任何数据,这不是问题, 但是我得到Run-time error '1004': No cells were found.会阻止代码进入下一个循环 我曾尝试On Error Resume Next,但我不会从代码中得到我的回复。也许还有更多的错误,我因为Resume Next而无法看到它们。

这是我的代码:

If Sheets("hour report").Range("U1") = 1 Then
    For i = 1 To k3
        For n = 1 To k1
            Sheets("Sheet1").ListObjects("Table1").Range.AutoFilter Field:=1, _
                Criteria1:=Sheets("hour report").Range("B" & i + 1)
            Sheets("Sheet1").ListObjects("Table1").Range.AutoFilter Field:=2, _
                Criteria1:=Sheets("hour report").Cells(1, n + 2)

            On Error Resume Next
            Range("Table1[f1]").SpecialCells(xlCellTypeVisible).Copy
            Sheets("hour report").Activate
            Cells(i + 1, n + 2).Select
            ActiveSheet.Paste
        Next n
    Next i
End If

1 个答案:

答案 0 :(得分:0)

你几乎与On Error Resume Next在一起。这将阻止错误发生,但正如你所说,它会进一步下降。

如果您从SpecialCells行删除错误检查,请将其恢复,然后检查SpecialCells是否返回了任何内容:

Sub Test()

    Dim rFiltered As Range

    On Error Resume Next
    Set rFiltered = Range("Table1[F1]").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0

    If Not rFiltered Is Nothing Then
        rFiltered.Copy
        'Rest of code for when a range is returned.
    End If

End Sub