创建一个IF语句来检查和删除高级过滤器

时间:2015-10-22 16:29:23

标签: excel vba excel-vba

我有一个工作表“结果”,它将应用一个高级过滤器。我有一个宏将结果从一个工作表(功能测试程序)复制到另一个(结果),另一个宏然后应用高级过滤器来确定是否有任何失败。我让复制脚本正常工作,过滤器也可以工作(大多数情况下)。我遇到的问题是尝试将结果粘贴到应用了(n)(高级)过滤器的命名区域中。当它失败时,它将导致意外的格式化,它将尝试粘贴下面的结果并“更改”将选择单元格从结果粘贴到另一个工作表(失败报告)的后续步骤,该工作表填充具有“失败”的任何值。我试过添加:

Sheets("Results").ShowAllData

If AdvancedFilter = Active Then
On Error Resume Next
ActiveSheet.ShowAllData
End If

并且都不起作用。我尝试在循环之前和之后添加它们,但我相信我使用了错误的关键字。这是我用来将功能测试过程中的部分复制到结果的完整脚本。

Sub Copy_Filtered_Sections()

 Dim Section As Long, NextRow As Long
 Dim FATPMetiPath As String, FATPMetiFolderPath As String
 Dim rng As Range
 Sheets("Results").Activate

 Sheets("Results").Range("Results").ClearContents
 For Section = 1 To 13 '32

    NextRow = Sheets("Results").Range("A" & Rows.Count).End(xlUp).Row + 1 'Next empty row

    Sheets("Function Test Procedure").Select

    Range("FTPSec" & Section).Columns("A:H").Copy _
        Destination:=Sheets("Results").Range("A" & NextRow)

 Next Section

End Sub

0 个答案:

没有答案