excel vba自動過濾輸入條件後,複製到另一sheet?

請幫忙~~謝謝。

問題:

1.C2需讓USER輸入,不可寫死為"1234567"(因為我是用錄製巨集)

2.程式碼 Rows("3:329").Select有問題

作業方式:

1.在"查詢"sheet的欄位 C2輸入7碼數字

2.按下 CommandButton1

3.依據"C2輸入7碼數字",到DATA sheet 第一行自動過濾出符合條件後,複製到"查詢"sheet 貼上

程式碼:

Private Sub CommandButton1_Click()

Range("C2").Select

ActiveCell.FormulaR1C1 = "1234567"

Sheets("DATA").Select

Selection.AutoFilter Field:=1, Criteria1:="=1234567", Operator:=xlAnd

<有問題> Rows("3:329").Select

Selection.Copy

Sheets("查詢").Select

ActiveWindow.SmallScroll Down:=18

Rows("26:26").Select

ActiveSheet.Paste

End Sub

Update:

yes,有自動copy過 來了喔,不過data sheet原本上面三行都是表頭,第三行有設定自動過濾,在執行這個程式之後,自動過濾的功能會被移除呢?必須再手動設定回,才能再次執行這個巨集,可否麻煩幫忙一下~謝謝

2 Answers

Rating
  • Kubi
    Lv 5
    10 years ago
    Favorite Answer

    不知道此巨集就是您要的?

    "查詢"工作表之C2可讓USER輸入。

    Private Sub CommandButton1_Click()

      Dim Rng As Range

      mykey = Sheets("查詢").Range("C2")

      Set Rng = Sheets("DATA").UsedRange

      Rng.AutoFilter Field:=1, Criteria1:=mykey

      Set Rng = Rng.SpecialCells(xlCellTypeVisible)

      Rng.Copy Sheets("查詢").[A26]

      Sheets("查詢").[A26].Select

      Rng.AutoFilter

    End Sub

    2010-07-15 16:14:14 補充:

    於補充內容欄內不知為何無法完整貼滿巨集代碼?

    因此利用信件回覆給您,煩請參閱。

    另外感謝 小花 大的助解!

    • Login to reply the answers
  • 小花
    Lv 5
    10 years ago

    在下面這行做修改

    Set Rng = Sheets("DATA").UsedRange

    這是設定Rng的範圍,依你需求要改成A3到你資料最底

    例如

    Set Rng = Sheets("DATA").Range("A3:K100")

    Kubi L 大因為你沒有說明DATA的範圍,因此設定Rng的範圍是DATA內含資料的儲存格

    要使用VBA要精確說明你的資料型態及內容範圍,因為程式碼都是量身訂做,

    • Login to reply the answers
Still have questions? Get your answers by asking now.