tft每日頭條

 > 生活

 > 一個excel的高級篩選

一個excel的高級篩選

生活 更新时间:2024-12-12 03:57:48
智能篩選

篩選功能相信大家再熟悉不過了,動動小手指,勾選需要的字段即可完成。

但是當同時篩選多個字段的時候,就略微繁瑣,需要一個個去下拉字段選擇,這裡我做了個小模闆,隻要鼠标點擊幾下,一鍵篩選即可。

一個excel的高級篩選(Excel多條件智能篩選)1

動态展示如下

一個excel的高級篩選(Excel多條件智能篩選)2

一是多列篩選中,需要篩選哪個字段,選中哪個字段,底色被填充,突出顯示;

二是點擊篩選按鈕,底部數據即被篩選出來。

整體來說操作感更強,可視化效果更明顯

制作過程

這個模闆主要是用VBA實現的,一共三段代碼

第一段最為重要,用來實現篩選框底部顔色的填充,當鼠标選擇發生變化時,判斷鼠标的位置,如果位于篩選框區域,這對相應的單元格底色進行填充,并在Excel固定單元格保存選中的數據;

一個excel的高級篩選(Excel多條件智能篩選)3

注意點:

1、此段代碼是在當前工作表Sheet1下輸入的,且在代碼輸入框的頂部選擇【Worksheet】與【SelectionChange】,表示此段代碼隻在當前工作表中有效,且當選擇發生變化時運行;

2、3段IF語句,負責判斷鼠标是否選中篩選區域,如果選中,則将對應區域底色填充,并将選中的單元格内容保存到固定單元格【m2:O2】,便于下部篩選(将這三個單元格的顔色設置為白色)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column >= 2 And Target.Column <= 8 And Target.Text <> "" And Target.Count = 1 Then Range("B2:h2").Interior.ThemeColor = xlThemeColorLight2 Range("B2:h2").Interior.TintAndShade = 0.799981688894314 Cells(Target.Row, Target.Column).Interior.Color = 15773696 Cells(2, 13) = Target.Text End If If Target.Row = 4 And Target.Column >= 2 And Target.Column <= 3 And Target.Text <> "" And Target.Count = 1 Then Range("B4:C4").Interior.ThemeColor = xlThemeColorLight2 Range("B4:C4").Interior.TintAndShade = 0.799981688894314 Cells(Target.Row, Target.Column).Interior.Color = 15773696 Cells(2, 14) = Target.Text End If If Target.Row = 6 And Target.Column >= 2 And Target.Column <= 3 And Target.Count = 1 Then Range("B6:C6").Interior.ThemeColor = xlThemeColorLight2 Range("B6:C6").Interior.TintAndShade = 0.799981688894314 Cells(Target.Row, Target.Column).Interior.Color = 15773696 Cells(2, 15) = Target.Text End If End Sub

第二段代碼主要是實現篩選的功能。

一個excel的高級篩選(Excel多條件智能篩選)4

篩選

注意點:

Field:=1,代表表格的第一列删選為o2;

Field:=2,代表表格的第二列删選為m2;

Field:=3,代表表格的第三列删選為n2;

o2/n2/m2是通過第一段代碼獲得,在表格中,字體白色處理;

Sub 篩選() a = Cells(Rows.Count, 1).End(xlUp).Row Range("B9").Select Selection.AutoFilter ActiveSheet.Range("$A$8:$W$" & a).AutoFilter Field:=1, Criteria1:=Range("o2") ActiveSheet.Range("$A$8:$W$" & a).AutoFilter Field:=2, Criteria1:=Range("m2") ActiveSheet.Range("$A$8:$W$" & a).AutoFilter Field:=3, Criteria1:=Range("n2") Range("A1").Select End Sub

第三段代碼比較簡單,取消篩選,選中表格任一單元格,Selection.AutoFilter取消篩選即可。

一個excel的高級篩選(Excel多條件智能篩選)5

取消篩選

Sub 清除篩選() Range("B9").Select Selection.AutoFilter End Sub

小結

也許有些小夥伴會覺得這個模闆看着比較雞肋,但在某些場景下還是比較實用的,适合多部門分享查看,給人耳目一新的感覺。

需要模闆的小夥伴可在後台私我,發送“篩選”二字即可。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved