回覆列表
-
1 # 羊毛學院
-
2 # 使用者5540256312630
按ALT+F11,開啟VBE編輯器,插入——模組,然後複製貼上下面的程式碼,按F5鍵執行。
Sub 多個條件篩選()
Range("A2:C65536").ClearContents
Sheets("表一").Range("A1:G16").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("E1:F3"), CopyToRange:=Range("表二!A1:C1"), Unique:= _
False
End Sub
思路提示:可以將方法一介紹的高階篩選錄制宏操作一遍,然後再適當修改程式碼得到。
其中:Sheets("表一").Range("A1:G16"):表示查詢的範圍。
CriteriaRange:=Range("E1:F3"):表示查詢條件,包括欄位名稱。
CopyToRange:=Range("表二!A1:C1"):表示結果的儲存範圍,包括欄位名稱。
在你資料當前的左下角sheet 滑鼠右鍵 點選最後一個 檢視程式碼 把下面的程式碼複製到裡面使用的時候 03版是 選單 工具----宏---宏---找到test的宏執行 即可Sub test() Application.ScreenUpdating = FalseDim rng As RangeDim r1, i As LongDim findvalue As Ranger1 = ActiveSheet.Range("B65536").End(xlUp).Rowi = 1For Each rng In ActiveSheet.Range("B1:B" & r1) Set findvalue = ActiveSheet.Columns(1).Find(what:=rng.Value) If Not findvalue Is Nothing Then Cells(i, 3).Value = rng.Value i = i + 1 End IfNext Application.ScreenUpdating = TrueEnd Sub