Board logo

標題: [發問] 篩選問題 [打印本頁]

作者: spermbank    時間: 2013-1-13 03:08     標題: 篩選問題

本帖最後由 spermbank 於 2013-1-13 03:10 編輯

大家好:
      在Sheet1表中有四欄資料,如何透過Sheet2表的代號對應Sheet1表的代號篩選出四欄所需要的資料呢?
     其中Sheet2表的代號數目不固定,不一定4筆,有時可能很多筆,
      因為代號數目不固定,不知道怎麼寫,請教大家一下,謝謝。
作者: GBKEE    時間: 2013-1-13 16:54

回復 1# spermbank
  1. Option Explicit
  2. Sub Ex()
  3.     Dim i As Integer, Rng As Range
  4.     i = 2
  5.     With Sheets("sheet2")
  6.         Do While .Cells(i, "a") <> ""
  7.             Set Rng = Sheets("SHEET1").Range("A:A").Find(.Cells(i, "a"), lookat:=xlWhole)
  8.             If Not Rng Is Nothing Then .Cells(i, "a").Resize(, 4) = Rng.Resize(, 4).Value
  9.             i = i + 1
  10.         Loop
  11.     End With
  12. End Sub
複製代碼

作者: Hsieh    時間: 2013-1-13 17:04

回復 1# spermbank

進階篩選
  1. Sub Ex()
  2.     With Sheets("Sheet2")
  3.     .[D1].CurrentRegion.Clear
  4.     Sheets("Sheet1").Columns("A:D").AdvancedFilter Action:=xlFilterCopy, _
  5.         CriteriaRange:=.Range(.[A1], .[A1].End(xlDown)), CopyToRange:=.Range("D1"), Unique:=False
  6.     End With
  7. End Sub
複製代碼

作者: spermbank    時間: 2013-1-15 02:15

本帖最後由 spermbank 於 2013-1-15 02:16 編輯

回復 2# GBKEE


    兩位大大:
            我想要的是透過Sheet2的代號,並且把Sheet1相對應的代號之4個欄位資料直接篩選顯示就可以囉,並且不需要將4欄位資料篩選後複製至Sheet2;
            還是不知道怎麼做,懇請指教,謝謝。
作者: spermbank    時間: 2013-1-15 02:21

兩位大大:
            我想要的是透過Sheet2的代號(代號數目不固定,不一定4組代號),並且把Sheet1相對應的代號之4個欄位資料(已按篩選鍵)直接篩選顯示就可以囉(若按清除可恢復Sheet1所有資料),並不需要將4欄位資料篩選後複製至Sheet2;
            還是不知道怎麼做,懇請指教,謝謝。
作者: Hsieh    時間: 2013-1-15 08:25

回復 5# spermbank
錄製巨集後與上面的代碼比較就知道該怎麼寫了
作者: GBKEE    時間: 2013-1-15 16:25

回復 5# spermbank
  1. Option Explicit
  2. Sub Ex_尋找()
  3.     Dim i As Integer, Rng As Range
  4.     Sheets("SHEET1").UsedRange.Offset(1).EntireRow.Hidden = True
  5.     i = 2
  6.     With Sheets("sheet2")
  7.         Do While .Cells(i, "a") <> ""
  8.             Set Rng = Sheets("SHEET1").Range("A:A").Find(.Cells(i, "a"), lookat:=xlWhole)
  9.             If Not Rng Is Nothing Then Rng.EntireRow.Hidden = False
  10.             i = i + 1
  11.         Loop
  12.     End With
  13. End Sub
  14. Sub 全部顯示_尋找()
  15.     Sheets("SHEET1").UsedRange.EntireRow.Hidden = False
  16. End Sub
複製代碼
  1. Option Explicit
  2. Sub Ex_進階篩選()
  3.     Dim 準則範圍 As Range
  4.      With Sheets("Sheet2")
  5.        Set 準則範圍 = .Range(.[A1], .[A1].End(xlDown))
  6.     End With
  7.     Sheets("Sheet1").Columns("A:D").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=準則範圍, Unique:=False
  8. End Sub
  9. Sub 全部顯示_進階篩選()
  10.     Sheets("Sheet1").Columns("A:D").AdvancedFilter Action:=xlFilterInPlace
  11. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)