从第二行复制过滤器的结果

问题描述 投票:0回答:1

我需要创建一个宏来制作过滤器,从第二行复制该过滤器的结果并将其粘贴到另一张纸中。我已经尝试了所有方法(offset、usedrange、sendkeys),但没有任何效果。我需要它是可变的,因为每当我用新信息更新基础时,范围位置都会改变。这是我尝试的最后一个代码:

ActiveSheet.ShowAllData
ActiveSheet.Range("$A$1:$U$419655").AutoFilter Field:=18, Criteria1:="1"
ActiveSheet.UsedRange.Offset(1, 0).Select
Selection.Copy
Sheets("HEX Acima").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks \_
:=False, Transpose:=False```
excel vba filter copy-paste
1个回答
0
投票
Option Explicit
Sub CopyAfterFilter()
    Dim visRng As Range
    If ActiveSheet.AutoFilterMode Then
        If ActiveSheet.AutoFilter.FilterMode Then
            ActiveSheet.ShowAllData
        End If
    End If
    With ActiveSheet.Range("A1").CurrentRegion
        If .Columns.Count < 18 Then Exit Sub
        .AutoFilter Field:=18, Criteria1:="1"
        Set visRng = .Resize(.Rows.Count - 1).Offset(1, 0)
        If Not visRng Is Nothing Then
            visRng.Copy
            Sheets(2).Range("A2").PasteSpecial Paste:=xlPasteValues
        End If
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.