2016-09-27 69 views
1

我想將已過濾的行復制到另一個工作表,但在下面的代碼中發生錯誤。 E欄中有三個狀態,即打開,關閉和逾期。我想複製狀態爲打開或過期的所有行。將已過濾的行復制到另一個工作表

錯誤發生在下面的行

.AutoFilter Field:=5, Criteria1:="open" 

下面的代碼

Dim Wb As Workbook 
Dim ws As Worksheet 
Set Wb = Workbooks.Open(TextBox2.Text) 
Set ws = Wb.Sheets(strSheetName) 

With ws 
    .AutoFilterMode = False 
    With .Range("A1:E65536") 
     .AutoFilter Field:=5, Criteria1:="open" 
     .SpecialCells(xlCellTypeVisible).copy Destination:=Sheets("Master Records").Range("A1") 
    End With 
End With 

好吧,既然我是新我沒有說是什麼錯誤,也沒有在那裏輸入工作簿,其中來自...所以也許我的用戶給我格式化的東西,沒有過濾器應該是...

+0

什麼錯誤拋出? –

+0

對你得到的錯誤有更具體的瞭解;做一點研究,並學習調試(不在這裏)!在問你的下一個問題之前,請閱讀http://stackoverflow.com/help/how-to-ask。 –

回答

0

與您的代碼,我得到通常的

Run-time error '1004' 

但更具體

AutoFilter method of Range class failed 

因爲在我的表沒有過濾器。

所以這裏是添加過濾器的表:

Sub Macro3() 
    Dim Wb As Workbook 
    Dim ws As Worksheet 
    Set Wb = ThisWorkbook 
    Set ws = Wb.Sheets("Sheet1") 

    ' here is what to add:  
    Range("A1:E1").Select 
    Selection.AutoFilter 
    ' done 

    With ws 
     .AutoFilterMode = False 
     With .Range("A1:E65536") 
      .AutoFilter Field:=6, Criteria1:="open" 
      .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Master Records").Range("A1") 
... 
     End With 
    End With 

End Sub 
相關問題