Board logo

標題: 跨工作表篩選 [打印本頁]

作者: hungrn    時間: 2020-5-20 13:11     標題: 跨工作表篩選

本帖最後由 hungrn 於 2020-5-20 13:17 編輯

各位先進好

工作表一的資料要篩選至工作表二...如果用以下range指定範圍方式可以
Sheets("sheet1").Range("A1:H250").Sheets("sheet1").Range("A1:H250").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("sheet1").Range("U1:U2"), _
CopyToRange:=Sheets("sheet2").Range("A1:H1"), Unique:=False
因為工作表一的內容會隨著資料的增減而改變 row ,所以想用 cells 方式指定範圍..但會顯示物件定義錯誤..是AdvancedFilter  不能用cells 還是?
Sheets("sheet1").Range(Cells(1, 1), Cells(250, 8)).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("sheet1").Range("U1:U2"), _
CopyToRange:=Sheets("sheet2").Range(Cells(1, 1), Cells(1, 8)), Unique:=False

麻煩各位先進指導..感謝
作者: hungrn    時間: 2020-5-20 14:19

Sheets("sheet1").Range(Cells(1, 1), Cells(250, 8)).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("sheet1").Range("U1:U2"), _
CopyToRange:=Sheets("sheet2").Cells(1, 1), Unique:=False

改成以上方式即可..
作者: luhpro    時間: 2020-5-21 00:16

本帖最後由 luhpro 於 2020-5-21 00:46 編輯
Sheets("sheet1").Range(Cells(1, 1), Cells(250, 8)).AdvancedFilter Action:=xlFilterCopy, CriteriaRang ...
hungrn 發表於 2020-5-20 14:19

改成這樣也可以 :
Sheets("sheet1").Range(Cells(1, 1), Cells(250, 8)).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("sheet1").Range("U1:U2"), _
CopyToRange:=Sheets("sheet2").Range(Sheets("sheet2").Cells(1, 1), Sheets("sheet2").Cells(1, 8)), Unique:=False
問題關鍵應是用Cells形式來表示 "範圍" 要各別詳細指定而不是給參考位址(只給 Cells(1,1) 這種, 前面沒有告訴它放在哪個 Sheet),
至於 Sheets("sheet1").Range("A1:H1") 這種表示形式,本身就已內含前後都用這個Sheet了,
你的方式是個完整的儲存格表示方式(Sheet.Range).




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