2014-07-09 148 views
0

非常新,我一直在盡我所能自我幫助自己,但一小時左右後,我放棄了,現在需要幫助,我嘗試使用下面的代碼I在這裏找到將工作簿1工作表1列I中的「確定」行復制到工作簿2工作表1中的新工作表中。根據單元格值將行復制到工作簿表

我不需要複製「錯誤」部分,但已將其保留到我的代碼工作。

我還想將所有數據複製到工作簿2中,因爲在此之前的日期將被新數據替換。

FilterAndCopy() 

Application.ScreenUpdating = False 
Application.EnableEvents = False 
Application.Calculation = xlCalculationManual 


Dim lngLastRow As Long 
Dim OKSheet As Worksheet, ErrorSheet As Worksheet 

Set OKSheet = Sheets("Sheet1") ' Set This to the Sheet name you want all Ok's going to 
Set ErrorSheet = Sheets("Sheet2") ' Set this to the Sheet name you want all Error's going to 

lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row 


With Range("A1", "I" & lngLastRow) 
    .AutoFilter 
    .AutoFilter Field:=9, Criteria1:="OK" 
    .Copy OKSheet.Range("A1") 
    .AutoFilter Field:=9, Criteria1:="ERROR" 
    .Copy ErrorSheet.Range("A1") 
    .AutoFilter 
End With 


Application.ScreenUpdating = True 
Application.EnableEvents = True 
Application.Calculation = xlCalculationAutomatic 

End Sub 

感謝

回答

0

嗯,你的代碼是不工作,因爲你需要寫

sub FilterAndCopy() 

在你子的beggining,嘗試一下,看看它是否工作。

什麼可以做,以檢查是否有在科拉姆數據是:

Dim r as range 
set r = Range("a1") 
while r.value <> "" 
    r= r.offset(0,1) 
end while 

,並使用「R」爲你貼的範圍,而不是A1

+0

遺憾缺少了,我將如何停止每次我將它複製到新表中時,它是否會替換數據? – user3821539

+0

這取決於,如果要保留書中的數據,可以檢查列中是否存在某些內容並將其粘貼到下一行中,或者每次運行宏時都要更改代碼中的粘貼範圍。 (選項1更合適) – Wabonano

+0

如何更改上面的代碼來檢查列中是否存在某些內容並粘貼它感謝您的幫助 – user3821539

相關問題