首页 > 解决方案 > 鼠标在另一个选项卡中选择和过滤宏

问题描述

我想创建一个宏,我可以使用鼠标在“容量”选项卡中选择一个名称,然后按热键 Ctrl+Shift+Z,宏将激活并在名称过滤器的“分配”选项卡中搜索此名称

我不知道如何使用宏来复制我选择的内容并将其粘贴到过滤条件

我试过这个

   Sub Macro1()
    '
    ' Macro1 Macro
    ' Resource allocaiton breakdown
    '
    ' Keyboard Shortcut: Ctrl+Shift+Z
    '
            Selection.Copy
            Sheets("Allocation").Select
            ActiveSheet.Range("$A$9:$FL$529").AutoFilter Field:=6
            ActiveSheet.Range("$A$9:$FL$529").AutoFilter Field:=1
            ActiveSheet.Range("$A$9:$FL$529").AutoFilter Field:=6, Criteria1:="Target.Value"

End Sub

但它不起作用,
我对 VBA 还很陌生,
请指教

标签: vbaexcel

解决方案


  1. 您应该避免在 Excel VBA 中使用 Select
  2. 您不能将单元格值“复制”到过滤条件中,而是通过使用单元格值将条件设置为该值Criteria1

所以这样的事情应该有效:

Option Explicit

Public Sub FilterForSelectedValue()
    Dim SelectedFilter As Range
    Set SelectedFilter = Selection

    Worksheets("Allocation").Range("$A$9:$FL$529").AutoFilter Field:=6, Criteria1:=SelectedFilter.Value

End Sub

推荐阅读