【问题标题】:VBA to filter cut and pasteVBA过滤剪切和粘贴
【发布时间】:2021-11-03 07:15:14
【问题描述】:

总的来说,我是宏和 VBA 的新手。只是试图自动化一些可以节省我大量时间的过滤。我一直在尝试使用 excel 中的宏来选择数据,根据某些条件进行过滤(为了方便起见,我将其放在一个过滤器上)剪切,然后粘贴到新工作表中。我希望它也删除我从中剪切的空行。下面的代码只复制不删除。

Sub filtertest()
Dim LastRow As Long

Sheets("Sheet1").Cells.Clear
Sheets("Sheet2").Activate

'Find the last row
LastRow = Range("A1").CurrentRegion.Rows.Count

'Select Table
Range("A1:K" & LastRow).Select

'Filter table
Selection.AutoFilter Field:=1, Criteria1:="51192"

'Copy/Paste
Selection.Copy
Sheets("Sheet1").Range("A1").PasteSpecial xlPasteValues

'Turn off autofilter
Selection.Autofilter

End Sub

我还尝试将其他一些代码组合在一起,以便将它们组合在一起。但是,我不断收到有关对象的错误。不确定是因为“sub button_click()”还是我说的我对此不熟悉。任何帮助表示赞赏。谢谢!

Sub Button1_Click()

Application.ScreenUpdating = False
Columns(1).AutoFilter 1, "51192"
With Range("a1", Range("i" & Rows.Count).End(3))
    .Copy FalsePositives.Cells(Rows.Count, 1).End(3).Offset(1)
    .EntireRow.Delete
End With
Columns(1).AutoFilter
Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • 您没有将FalsePositives 声明为工作表。
  • 当我一开始“将 FalsePositives 作为工作表”时,我得到一个运行时错误 91 对象变量或未设置块变量。

标签: vba excel


【解决方案1】:

复制并粘贴值,然后返回并删除原始值,跳过标题。

Sub filtertest()
    Dim LastRow As Long

    Worksheets("Sheet1").Cells.Clear

    With Worksheets("Sheet2")

        'Find the last row
        LastRow = .Range("A1").CurrentRegion.Rows.Count

        'Filter table
        .Range("A1:K" & LastRow).AutoFilter Field:=1, Criteria1:="51192"


        'Copy/Paste
        .Range("A1:K" & LastRow).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("Sheet1").Range("A1").PasteSpecial xlPasteValues

        'remove originals
        .Range("A1:K" & LastRow).Offset(1, 0).EntireRow.Delete

        'Turn off autofilter
        .AutoFilterMode = False
    End With
End Sub

【讨论】:

  • 谢谢你完美的工作。现在,如果我想过滤多个条件,我只需添加另一个 .Range Row?标准也将在同一领域。因此,当我剪切并粘贴新标准时,我希望它从 sheet2 的下一个空白行开始,这样它就不会与之前放在那里的数据重叠。
  • 不,您将使用 xlAnd 或 xlOr 将 Criteria2 添加到 .AutoFilter。记录自己执行此操作以获取语法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
相关资源
最近更新 更多