2015-01-03 70 views
2

我使用的是先進的過濾在Excel中快速通過設定條件過濾返回空白。我確定了「標準範圍」並記錄了一個工作宏。當我在'標準範圍'中沒有任何標準運行宏時,宏返回整個底層數據庫,這正是應該發生的事情。高級篩選不承認由公式

然而,當我插入公式的在「條件區域」返回空白時設定的標準是空白的,宏不能識別細胞爲空白,即它沒有返回。

我的問題是:如何獲得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

+0

D4實際上是什麼?有沒有公​​式或手動編輯的值?如果有一個公式它實際上不是一個空白單元格 – datatoo

+0

您好datatoo! D4實際上是空白的。但是,經過一些實驗後,我發現問題是由'= IF(ISBLANK(D4),「」,「<=」&D4)'引起的。它不是'D4',而是包含'= IF(ISBLANK(D4),「」,「<=」&D4)'的單元格,這是有問題的,因爲Excel確實認爲這個單元格是空白的(即使函數返回「」)。所以這個問題歸結爲:是否有一種方法可以將另一個操作符替換爲「」,以便Excel可以將單元識別爲空? – Hieronymus5

+0

也許= IF(D4 =「」,「」,「<=」&D4)將爲你工作 – datatoo

回答

0

看樣子你是正確的,公式結果不起作用

或許檢查D4在VBA和寫入空值,而不是使用一個公式 如果=範圍( 「接口標準!」)爲範圍E1:E2

If Range("D4") = "" Then Range("E2") = "" Else Range("E2") = "<=" & Range("D4")` 

「,那麼你的過濾器

0

首先非常感謝大家試圖幫助我解決這個問題。

話雖如此,對我來說,解決辦法是其實很簡單。我想讓標準範圍爲空的主要原因是強制高級過濾器返回底層數據集中的所有數據。

然而,標準範圍不需要是空白的過濾器返回的所有數據,人們也可以強制Excel返回所有值除了特定值

如果你選擇了這個特定的值是一些亂碼,這不是任何地方在你的基礎數據集,它將返回完整的數據。

所以在我的情況下,我通過=IF(ISBLANK(D4),"<>TEST","<="&D4)取代=IF(ISBLANK(D4),"","<="&D4)。具有「<> TEST」的後一個公式返回不等於TEST的所有數據。 TEST是一個在我的數據集中不存在的值。

我還沒有嘗試datatoo提供的解決方案。

+0

是非常好的祝賀 – datatoo