如何过滤和复制命名范围?

时间:2019-04-29 12:23:35

标签: excel vba

我正在尝试将已过滤的命名范围导出到新工作簿。我的命名范围包含可变数量的行,在特定列中带有“ 0”。在将它们导出到新工作簿之前,我想从选择中排除那些行(在“ F”列中包含“ 0”)。

下面是我用来复制命名范围并将其粘贴到新工作簿中的代码。到目前为止,还不错,但是对于如何排除列“ F”中带有“ 0”的行,我一无所知。目前,整个命名范围已粘贴到新工作簿中。

Dim MyFileName As String
Dim CurrentWB As Workbook, TempWB As Workbook

Set CurrentWB = ActiveWorkbook
ActiveWorkbook.ActiveSheet.Range("my named range").Copy


Set TempWB = Application.Workbooks.Add(1)
With TempWB.Sheets(1).Range("A1")
    .PasteSpecial xlPasteValues
    .PasteSpecial xlPasteFormats
End With

1 个答案:

答案 0 :(得分:1)

假设您已经过滤了数据并且隐藏了零,请更改以下行:

ActiveWorkbook.ActiveSheet.Range("my named range").SpecialCells(xlCellTypeVisible).Copy

如果尚未过滤,请使用AutoFilter

ActiveWorkbook.ActiveSheet.Range("my named range").AutoFilter Field:=(number of field), Criteria1:="<>0"

紧接着上方的一行...