您的位置:首頁>科技>正文

VBA|多條件自動篩選、高級篩選提取唯一值

資料在Excel表中的篩選, 也就是根據定義的條件將需要的資料記錄從資料清單中選擇出來, 同時Excel表只顯示你選擇的這一部分資料, 而不是全部, 主要是用來對資料進行整理和分析或資料的提取的。 資料篩選相當於資料庫中的“查詢”(Select)命令(通過子命令Where定義條件)。 (Excel中定義的資料篩選源區域也就是資料清單, 是有資料庫中的表的概念的, 表頭相當於欄位, 表頭下的每一行就是記錄。 )

Excel中的資料篩選都需要定義篩選的條件, 根據構造條件的方式不同分為自動篩選和高級篩選。 自動篩選是通過對話方塊來構造單一條件,

操作比較直觀簡單便捷。 高級篩選是通過資料篩選來源資料以外的儲存格區域自訂條件, 可以定義多個, 比較適應多條件、複雜條件的情形。

Excel中的篩選, 可以通過工作表選項卡區中的命令直接完成, 也可以通過VBA代碼完成。 (其實也就是將整個篩選操作的過程錄製成宏, 再適當修改代碼。 )

1 多條件自動篩選

Sub Filter_MoreCriteria()

Dim Crit As Variant

Application.ScreenUpdating = False

With Worksheets(1)

If .FilterMode = True Then .ShowAllData

.Range("A1").AutoFilter Field:=1, Criteria1:="1243301", Operator:=xlOr, Criteria2:="1288178"

.Range("B1").AutoFilter Field:=2, Criteria1:="ORA"

End With

Application.ScreenUpdating = True

End Sub

2 高級篩選提取唯一值

Sub 高級篩選提取唯一值()

Dim X As Integer

Columns(13).Clear

X = Range("A" & Cells.Rows.Count).End(xlUp).Row

Range("A1:A" & X).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("M1"), Unique:=True

End Sub

3 代碼要點

使用AutoFilter或AdvancedFilter方法完成自動篩選或高級篩選:

工作簿.儲存格對象.AutoFilter ...

工作簿.儲存格對象.AdvancedFilter ...

以上代碼完成的如下命令的功能:

資料→篩選…

資料→高級篩選...

(如果不熟悉相關VBA代碼, 可以通過“錄製巨集”的方式先錄得代碼, 再適當改動即可。

4 篩選的工作表選項卡區圖示命令操作

4.1 自訂篩選

對某列定義篩選條件實現篩選;

4.2 高級篩選

4.2.1 建立條件區域(與需要篩選的資料清單分開);

4.2.2 可以將篩選結果複製到其它區域;

4.2.3 指定需要篩選的清單區域;

4.2.4 指定條件區域;

Next Article
喜欢就按个赞吧!!!
点击关闭提示