0

我有 2 个工作簿。只有当它包含另一个工作簿中的某个值时,我才需要复制一个工作簿中的行。这是我的代码,它适用于第一个 i=21 和 i=22,但当我到达 i=23 时,它告诉我 Cells.Find 中存在错误。

For i = 21 To 35
    Windows("Run Report.xlsm").Activate
    Dim strL3 As String
    strL3 = Sheets("Summary").Range("A" & i).Value
    Workbooks("Ace Survey - Level 1 and level 3 Trending (w Resolution) v3").Activate
    Range("A1").Activate
    Cells.Find(What:=strL3, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    If strL3 = "Call Disconnected" Or strL3 = "Caller Not Present" Then
        ActiveCell.Offset(2, 2).Select
    Else
        ActiveCell.Offset(1, 2).Select
    End If
    Application.CutCopyMode = False
    ActiveCell.Copy
    Windows("Run Report.xlsm").Activate
    Sheets("Summary").Select
    Range("G" & i).Select
    ActiveSheet.Paste
Next i
4

1 回答 1

0

FindRange如果找到某个对象,则返回一个对象,否则返回Nothing。您正在尝试激活使用 Find 的结果,即使它是 Nothing - 这将产生错误。

您需要将Find尝试的结果存储在Range变量中,并检查Nothing.

Dim rngFound As Range

Set rngFound = Range("A1").Find(...)
If Not rngFound Is Nothing Then
    ' we found something!
Else
    ' Nothing
End If

但是,按照建议,您应该为您的问题提供更多详细信息。

于 2013-07-01T18:46:09.883 回答