【发布时间】:2021-09-21 18:23:17
【问题描述】:
我是 VBA 的初学者,我有一个自动过滤宏,可以根据用户输入进行过滤。将生成一个新的电子表格,过滤后的数据将粘贴到新的电子表格中。
但我遇到的问题是这样的:
-------------------------------------------------
Example of data:
Name Model PO Number
Kevin Winon 3000
Billy Kent 3001
Esther Kent 3000
Tom Master 3005
For example if the filtered criteria = 3000
Output receive is:
Name Model PO Number
Billy Kent 3001
Tom Master 3005
Desired output
Name Model PO Number
Kevin Winon 3000
Esther Kent 3000
---------------------------------------------------------------
My Code :
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
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Analysis").AutoFilterMode = False
End Sub
【问题讨论】:
-
您声明了一个名为
po_num的变量,但随后您执行了Criteria1:=po_number。注意它们是不同的。始终使用Option Explicit来避免此错误。另外,我认为您需要的是Criteria1:="=" & po_num