如何根据剪贴板进行过滤?

时间:2019-06-14 22:04:51

标签: excel vba filter clipboard

我与部门中的许多人一起工作,并且始终与他们共享我的代码,因此您也将帮助我和我的同事!

使用宏记录器创建了此代码,以过滤要过滤的列,但是我需要根据剪贴板上的内容(我按过 Ctrl

的任何单元格)更改代码以对其进行过滤。 kbd> + C )。录制宏时,我按了 Ctrl + C ,但是它没有记录这些按钮的按下,它只是将当时剪贴板中的内容粘贴到了宏中。
Sub Filter()

    ActiveSheet.Range("$A$1:$V$12955").AutoFilter Field:=2, Criteria1:= _
        "Clipboard"

End Sub

1 个答案:

答案 0 :(得分:1)

这是我在Excel中所做的第一个项目之一。我将解释我的代码如何工作,然后您可以根据需要进行操作。

Youtube Link on How to Use it

将代码粘贴到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个值,则此代码可以节省生命。

相关问题
最新问题