標題:
進階篩選的問題
[打印本頁]
作者:
hugh0620
時間:
2010-12-8 18:32
標題:
進階篩選的問題
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
是否有解決的方式呢???
作者:
oobird
時間:
2010-12-8 20:02
Sheet2.Range("C4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet1.Range("A2"), Unique:=True
執行進階篩選必須在目的工作表上執行,不是在資料源工作表上。用vba時注意不要select到源表。
作者:
GBKEE
時間:
2010-12-9 08:09
本帖最後由 GBKEE 於 2010-12-9 08:12 編輯
回復
1#
hugh0620
程式碼的問題可能是 "Selection"
資料的進階篩選.AdvancedFilte,應指明資料的位置如:Sheet1.Range("A1:E10")
可以上傳檔案嗎? 是否如下圖的錯誤?
[attach]4000[/attach]
作者:
hugh0620
時間:
2010-12-9 09:09
本帖最後由 hugh0620 於 2010-12-9 09:22 編輯
回復
3#
GBKEE
大大 我執行後的錯誤訊息如下圖
[attach]4003[/attach]
[attach]4002[/attach]
作者:
oobird
時間:
2010-12-9 09:49
[attach]4005[/attach]
作者:
GBKEE
時間:
2010-12-9 09:51
本帖最後由 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
"), 的儲存格可全部為空白 ,但不可有資料的欄位中夾雜有空白儲存格及不是資料的欄位
作者:
hugh0620
時間:
2010-12-9 10:03
回復
5#
oobird
等級不夠~ 無法下載~ 我會努力衝的~ 好下載大大提供的檔案
作者:
hugh0620
時間:
2010-12-9 10:10
回復
6#
GBKEE
大大~ 很感謝你這樣熱心的回覆~
很抱歉 我沒有表達的很清楚
希望透過Sheet1 A2這個欄位~當KEY WORD~ 去篩選出 sheet2 中資料符合sheet1這個欄位
例: sheet1 A2 = 1
就篩出 sheet2 資料中符合1 的資料
這樣說明,希望大大能了解
作者:
oobird
時間:
2010-12-9 10:12
[attach]4006[/attach]
作者:
GBKEE
時間:
2010-12-9 11:02
回復
8#
hugh0620
Private Sub CommandButton1_Click()
Sheet2.Range("C4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet1.Range("A1:A9"), CopyToRange:=Sheet1.Range("C5:j5"), Unique:=True
End Sub
複製代碼
要用計算式準則,計算式準則的欄位名稱須不同於資料庫的欄位名稱
Sheet1.Range("A1:A9") 是準則的範圍 如圖:
[attach]4009[/attach]
作者:
FAlonso
時間:
2010-12-11 14:19
我把樓主的code原裝填入模組再運用,啥事也沒有,程式邏輯是絕對正確的
感覺這個Error 1004是望天打卦,喜歡的時候便出現
還有就是那種select完又end又select的,最好用current region
"Excel VBA與資料庫整合大活用"一書有詳細解釋,這書很棒
作者:
hugh0620
時間:
2010-12-14 10:27
回復
11#
FAlonso
謝謝提供我寶貴的意見~:D
作者:
taihui
時間:
2011-1-1 15:18
回復
2#
oobird
只要在目的工作表執行進階篩選,就可以跨工作表執行
太感謝了.
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)