2015-10-16 71 views
1

我工作的自動去除多個文件中的數據的某些行。其中一個標準是排除除特定列表以外的所有產品。目前我通過遍歷行並刪除不適合正確產品的行來做到這一點。自定義排序通配符

我在考慮對行進行排序,以便將要保留的產品放在第一位,並將要刪除的行放在一起在數據中較低的位置會更快,因爲我可以找到第一個壞行並清除內容(而不是Range("<XX:XX>").Delete Shift:=xlUp)。

我遇到的麻煩是產品實際存在於任何文件中,因爲要保存的產品列表不一樣。這幾乎是爲十幾個文件中的每一個保留的獨特產品列表。

所以我希望是有一種方法,當我指定自定義排序列表,使我可以有一個單一的項目,我沒有明確列出的所有其他產品。

例如,如果我想對字母「V,C,R」進行排序,是否有辦法在沒有明確列出字母表中的其他所有字母的情況下執行此操作?

我想避免指定列表的其餘部分有兩個原因。其一,列表相當長,重新輸入我需要排序的每個文件的完整列表將很容易出錯並且難以維護。二,產品列表不一定是靜態的,所以我不希望每次添加新產品時都需要更新宏。

+0

爲什麼不使用通配符進行篩選並使用'SpecialCells(xlCellTypeVisisble)'來刪除所有可見的行? – Kyle

回答

1

我不知道我完全理解了你的問題,但也許使用帶公式的列可能有幫助?

enter image description here

它可以由編碼增加一列是自動化的,基於對新範圍的過濾器中新創建的範圍內設定上式中,和透明或排序。

+0

公式實際上將創建一個方法來正確的產品到頂部排序,但不幸的是應用該公式對數據的整個範圍,而等待它的計算非常簡單,只是只要走的行刪除。所以我稍微調整了一下你的想法。我沒有添加公式來確定「保留」或「清除」,而是簡單地確定了該行是否應該保留在代碼中,然後將值添加到虛擬列(「A」保留,「B」清除)。然後我排序,並刪除了所有B的那修剪1300+第二運行時<百秒 – JMichael

+0

我不知道發生了什麼減緩下來 - 也許如果匹配範圍是更具體的,像A2:A4。,這就有可能加速的東西了一點,但我很高興聽到你想通了! – Demetri

+0

我來學習,有似乎是在我的僱主,導致Excel計算緩慢運行環境的東西,也沒有幫助,我用我的一天到一天的虛擬機(對於無法理解的原因,我們的IT部門。外)設置到只有1個CPU。 – JMichael