我正在使用Excel中的高级筛选来快速筛选所设置的条件。我已经确定了“标准范围”,并录制了一个工作宏。当我在没有任何条件的情况下运行宏时,宏会返回整个底层数据库,这正是应该发生的事情。
但是,当我在'criteria range‘中插入公式时,如果设置的criteria为空,则返回空格,宏不会将该单元格识别为空,即不返回任何内容。
我的问题是:如何让Excel将单元格识别为空,从而通过“条件范围”中插入的公式返回整个底层数据集?
录制的宏:
Sub Filter()
Sheet2.Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, CriteriaRange:=Range("Interface!Criteria"), _
CopyToRange:=Range("Interface!Extract"), Unique:=False
ActiveWindow.ScrollColumn = 1
End Sub插入“条件范围”的公式:
=IF(ISBLANK(D4),"","<="&D4)提前谢谢你,
Hieronymus5
发布于 2015-01-04 10:00:32
看起来你是对的,公式结果行不通。
如果= D4 (“接口!条件”)是范围E1:E2,则可能检查vba中的范围并写入空值,而不是使用公式
If Range("D4") = "" Then Range("E2") = "" Else Range("E2") = "<=" & Range("D4")` ‘然后你的过滤器
发布于 2015-01-05 18:01:28
首先,非常感谢所有试图帮助我解决这个问题的人。
话虽如此,对我来说,解决方案实际上相当简单。我希望将条件范围留空的主要原因是强制高级筛选器返回基础数据集中的所有数据。
但是,筛选器返回所有数据的条件范围不必为空,还可以强制Excel返回除特定值之外的所有值。
如果您选择这个特定值是一些胡言乱语,而不是在您的底层数据集中,它将返回完整的数据。
所以在我的例子中,我用=IF(ISBLANK(D4),"<>TEST","<="&D4)替换了=IF(ISBLANK(D4),"","<="&D4)。后一个带有"<>TEST“的公式返回的所有数据都不等于TEST。TEST是一个在我的数据集中不存在的值。
我还没有尝试过datatoo提供的解决方案。
https://stackoverflow.com/questions/27756447
复制相似问题