我是VBA的初學者,我有一個自動過濾宏,將根據用戶的輸入進行過濾。一個新的電子表格將被生成,過濾后的資料將粘貼在新的電子表格上。
但是我遇到的問題是:
-------------------------------------------------
例子 of 資料。
名稱 型號 PO編號
凱文-維農3000
比利-肯特3001
埃斯特-肯特3000
湯姆大師 3005
對于例子 如果過濾的標準=3000,則
輸出接收是。
名稱 型號 PO編號
比利-肯特3001: Billy Kent
湯姆大師 3005
希望的輸出
名稱 型號 PO編號
Kevin Winon3000
埃斯特-肯特3000
---------------------------------------------------------------
我的代碼 :
Sub po_finder()
Dim po_num As String
Sheets("Analysis").Unprotect "mech_eng_123"。
po_num = UserForm_PO.TextBox1.Value
Sheets("Analysis").Select。
ActiveSheet.Range("W1").AutoFilter Field:=23, Criteria1:=po_number
ActiveSheet.Range("A1:AW500").Select。
選擇.復制
表.添加在:=活動表之后
ActiveSheet.Paste
Application.CutCopyMode = False.
Sheets("Analysis").AutoFilterMode = False。
結束 Sub
uj5u.com熱心網友回復:
當你過濾你的資料時,問題似乎出在 "po_number "的參考上。之前,你將該變數稱為po_num。試試這個:
Sub po_finder()
Dim po_num As String
Sheets("Analysis").Unprotect "mech_eng_123"。
po_num = UserForm_PO.TextBox1.Value
Sheets("Analysis").Select。
ActiveSheet.Range("W1").AutoFilter Field:=23, Criteria1:=po_num
ActiveSheet.Range("A1:AW500").Select。
選擇.復制
表.添加在:=活動表之后
ActiveSheet.Paste
Application.CutCopyMode = False.
Sheets("Analysis").AutoFilterMode = False。
結束 Sub
uj5u.com熱心網友回復:
你的標準被應用于列AS,因為在ActiveSheet.Range("W1").AutoFilter Field:=23, Criteria1:=po_number Field=1將會是列W。標準是"",因為值3000是在po_num而不是po_number。
sub po_finder()
Dim po_num As String, ws As Worksheet, wsNewAs Worksheet
Set ws = Sheets("Analysis"/span>)
ws.取消保護"mech_eng_123"。
po_num = UserForm_PO.TextBox1.Value
Set wsNew = Sheets.Add(After:=ws)
With ws.Range("A1:AW500"/span>)
.自動過濾 Field:=23, Criteria1:=po_num
.復制 wsNew.Range("A1")
結束 與
ws.AutoFilterMode = False[/span
MsgBox "資料復制到" & wsNew.Name & " " & wsNew.UsedRange.Address, vbInformation
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/332380.html
標籤:
上一篇:如何在列中求出每日總數?
下一篇:使用VBA提取條形碼資料
