我与部门中的许多人一起工作,并且始终与他们共享我的代码,因此您也将帮助我和我的同事!
使用宏记录器创建了此代码,以过滤要过滤的列,但是我需要根据剪贴板上的内容(我按过 Ctrl
Sub Filter()
ActiveSheet.Range("$A$1:$V$12955").AutoFilter Field:=2, Criteria1:= _
"Clipboard"
End Sub
答案 0 :(得分:1)
这是我在Excel中所做的第一个项目之一。我将解释我的代码如何工作,然后您可以根据需要进行操作。
将代码粘贴到Personal Macro
中之后,在快速访问工具栏上为此宏创建一个快捷方式。
然后所有您需要做的是,在要过滤的范围上应用Autofilter
,复制包含要过滤的值的单元格或单元格范围,然后选择列的标题您要应用此过滤器的对象。按创建的快捷方式。
它还将在单个单元格上运行,因此您无需修改它。只需按照上面的说明进行操作即可。
代码在这里:
Sub filtrr()
'
Dim i As Integer
Dim Test As String
Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
clipboard.GetFromClipboard
Test = clipboard.GetText
Test = Replace(Test, Chr(13), "-")
Test = Trim(WorksheetFunction.Clean(Test))
Dim ab() As String
ab = Split(Test, "-")
ReDim Preserve ab(UBound(ab) - 1)
ActiveSheet.UsedRange.AutoFilter Field:=Selection.Column, Criteria1:=ab, Operator:= _
xlFilterValues
End Sub
在您的情况下,只有一个包含值的单元格,但是如果您要在成千上万个值的表中过滤掉50个值,则此代码可以节省生命。