自动筛选,然后复制和粘贴范围

我在下面写了一个代码。 意图是自动过滤列K与条件,复制数据,并粘贴在同一页上的工作表底部,正好在最后一行下面。

我没有得到任何错误,但代码不按预期工作。 它可以自动过滤和复制,但不会将数据粘贴到最后一行。 我可以请一些帮助。

Sub Depreciation_to_Zero() With Sheets("Restaurant") .AutoFilterMode = False With .Range("k1", .Range("k" & .Rows.Count).End(xlUp)) .AutoFilter Field:=1, Criteria1:="*HotDog*" On Error Resume Next .Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Copy .Cells(.Rows.Count, "A").End(xlUp).Row.Select.PasteSpecial xlPasteValues On Error GoTo 0 End With .AutoFilterMode = False End With MsgBox ("Complete") End Sub 

试试这个版本


 Option Explicit Public Sub DepreciationToZero() Const FIND_VAL = "*HotDog*" Dim ws As Worksheet, lr As Long, result As String Set ws = Worksheets("Restaurant") Application.ScreenUpdating = False ws.AutoFilterMode = False lr = ws.Cells(ws.Rows.Count, "K").End(xlUp).Row result = FIND_VAL & " not found" With ws.UsedRange ws.Range("K1:K" & lr).AutoFilter Field:=1, Criteria1:=FIND_VAL If ws.Range("K1:K" & lr).SpecialCells(xlCellTypeVisible).CountLarge > 1 Then .Offset(1).Resize(lr - 1).SpecialCells(xlCellTypeVisible).Copy .Offset(lr).Cells(1).PasteSpecial xlPasteValues .Offset(lr).Cells(1).Select Application.CutCopyMode = False result = "All " & FIND_VAL & " rows copied" End If End With ws.AutoFilterMode = False Application.ScreenUpdating = True MsgBox result End Sub