返回列表 上一主題 發帖

進階篩選的問題

進階篩選的問題

Dear 大大

      有一個小問題想請教大大們,就是我在使用"進階篩選"這個功能時,好像無法跨業執行
      例如在sheet2使用進階篩選後,在"複製到"這個部份選到sheet1確會失敗
      另外在使用vba撰寫時,也會有這樣的問題,程式碼如下  (無法執行)
  Sheet2.Select
   Sheet2.Range("C4").Select
   Sheet2.Range(Selection, Selection.End(xlToRight)).Select
   Sheet2.Range(Selection, Selection.End(xlDown)).Select
   Selection.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet1.Range("A2"), Unique:=True
   Sheet1.Select
   Range("A4").Select

          是否有解決的方式呢???

Sheet2.Range("C4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet1.Range("A2"), Unique:=True
執行進階篩選必須在目的工作表上執行,不是在資料源工作表上。用vba時注意不要select到源表。

TOP

本帖最後由 GBKEE 於 2010-12-9 08:12 編輯

回復 1# hugh0620
程式碼的問題可能是 "Selection"  
資料的進階篩選.AdvancedFilte,應指明資料的位置如:Sheet1.Range("A1:E10")
可以上傳檔案嗎? 是否如下圖的錯誤?




EX1.GIF
2010-12-9 08:09

TOP

本帖最後由 hugh0620 於 2010-12-9 09:22 編輯

回復 3# GBKEE


    大大 我執行後的錯誤訊息如下圖

      測試進階篩選.rar (8.56 KB)
     
錯誤訊息.JPG
2010-12-9 09:12

TOP

測試進階篩選.rar (8.2 KB)

TOP

本帖最後由 GBKEE 於 2010-12-9 09:58 編輯

回復 4# hugh0620
Selection.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet1.Range("A2"), Unique:=True
這裡改為 A4 , A2 的值為1不是 資料的欄位所以會產生錯誤 但如A2 的值=""  程式會自動產生,資料的欄位 可試試看  
修改你的程式碼如下,是否是你的原意.
Private Sub CommandButton1_Click()
   Sheet2.Range("C4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet1.Range("A1:A2"), CopyToRange:=Sheet1.Range("A4:H4"), Unique:=True
End Sub
PS: CriteriaRange:=Sheet1.Range("A1:A2"), 的儲存格可全部為空白 ,但不可有資料的欄位中夾雜有空白儲存格及不是資料的欄位

TOP

回復 5# oobird


    等級不夠~ 無法下載~ 我會努力衝的~ 好下載大大提供的檔案

TOP

回復 6# GBKEE


    大大~ 很感謝你這樣熱心的回覆~
    很抱歉  我沒有表達的很清楚
    希望透過Sheet1 A2這個欄位~當KEY WORD~ 去篩選出 sheet2 中資料符合sheet1這個欄位
   例: sheet1 A2 = 1
          就篩出 sheet2 資料中符合1 的資料

   這樣說明,希望大大能了解

TOP

a.gif
2010-12-9 10:12

TOP

回復 8# hugh0620
  1. Private Sub CommandButton1_Click()
  2.    Sheet2.Range("C4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet1.Range("A1:A9"), CopyToRange:=Sheet1.Range("C5:j5"), Unique:=True
  3. End Sub
複製代碼
要用計算式準則,計算式準則的欄位名稱須不同於資料庫的欄位名稱
Sheet1.Range("A1:A9") 是準則的範圍 如圖:


EX1.GIF
2010-12-9 11:02

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題