2013-07-01 117 views
0

我有2個工作簿。我只需要在其他工作簿中包含某個值時,將該行復制到一個工作簿中。這裏是我的代碼,它適用於第一個i = 21和i = 22,但告訴我在達到i = 23時Cells.Find中有錯誤。vba函數將某個值從一個工作簿複製到另一個工作簿

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 
+0

什麼「適用於前兩個我,但之後突破」是什麼意思?你忘了告訴我們它是如何「突破」的,忘記了實際提出問題。請編輯你的問題來解決這兩件事情,所以有人可以嘗試和幫助你。謝謝。 –

+0

它通過i = 21和i = 22循環,但是然後在23,它告訴我,在錯誤Cells.Find – user2540029

+1

再次,請[編輯]您的問題(點擊我已經發布了兩次的鏈接)添加那裏的信息而不是評論。此外,「它告訴我,這是一個錯誤」是**不是**錯誤的描述 - 它告訴你什麼**完全**? –

回答

0

Find如果事情是找到返回Range對象,但沒什麼否則。您正試圖激活使用查找的結果,即使它沒有任何內容 - 這會產生錯誤。

您需要將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 

但是,正如所建議的那樣,您應該爲您的問題提供更多詳細信息。

相關問題