过滤范围和表格之间的区别

时间:2018-06-21 16:18:16

标签: vba excel-vba filtering excel

有人可以解释为什么过滤范围和表格之间有区别吗?我得到了两者之间的区别,但是我不明白为什么范围过滤器在格式化为表格时不能过滤基础数据。

由于差异,我在过滤文件时遇到了问题。我正在合并x个具有相同标题的用户文件。但是,有些人(非常感谢,查尔斯在大厅对面)决定将其格式化为导致问题的表格。

是否有通用的方法(或更有效的方法)来筛选与格式无关的数据?例如,我尝试在A列中过滤文本“ NORAM”,然后将可见的单元格复制/粘贴到其他位置。

我需要做这样的事情吗?

If Range("A1") is range Then
    Filter Range("A1") with range method ("NORAM")
    Copy Visible Cells
    Paste to Destination
Else
    Filter Range("A1") with table method ("NORAM")
    Copy Visible Cells
    Paste to Destination
End If

或者有没有办法做到这一点,而与范围或表无关?

Range("A1") filter range regardless of format ("NORAM")
Copy Visible Cells
Paste to Destination

我不需要复制或粘贴数据的帮助。以上只是一般步骤。我希望看到一种最有效的过滤范围,表格的方法,希望能找到一种不考虑格式的过滤方法。

1 个答案:

答案 0 :(得分:1)

我不确定您会遇到什么错误,但这是一个快速筛选器,已在表(Sheet1)和未格式化为表(Sheet2)的范围内进行了测试。

Option Explicit

Private Sub FilterTableOrRange(ws As Worksheet)
    Dim lastRow As Long, lastCol As Long

    With ws
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column

        .Range(.Cells(1, 1), .Cells(lastRow, lastCol)).AutoFilter _
            Field:=1, Criteria1:="NORAM"
    End With
End Sub

Sub Master()
    FilterTableOrRange Sheets("Sheet1")
    FilterTableOrRange Sheets("Sheet2")
End Sub

enter image description here

如果这没有帮助,请指定您遇到的确切问题。

相关问题