在新工作表中双击单元格显示过滤器时创建宏

时间:2012-11-08 07:01:26

标签: excel-vba vba excel

我有一个关于创建宏的问题,而方案如下:

Sheet 1中 单击Sheet1中的任何单元格后,它将根据单元格A和B自动过滤。

Sheet 2中 基于Sheet1的双击

自动显示过滤条件

例如:当我双击C1时,Sheet2将自动显示基于A1和B1的过滤数据,如果我在Sheet2上的C2上双重clik将自动显示基于A1和B2的过滤数据。< / p>

真的需要专家的帮助。

1 个答案:

答案 0 :(得分:3)

这将是您捕获单击事件所需的代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Debug.Print Target.Address
End Sub

这将是您捕获双击事件所需的代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Debug.Print Target.Address
  'cancel the double click, prohibiting editng of cell per double-click
  Cancel = true
End Sub

我也会帮助你进行过滤,但是由于你没有粘贴任何代码,我不知道你想要过滤哪些数据,我会把它留给你;)

编辑:

此代码可用于Worksheet_SelectionChange,并将根据使用范围内的有效选择设置过滤器。如果过滤器已就位,则会将其停用。

  On Error Resume Next
  If Sheet1.AutoFilterMode Then
    'clear existing autofilter
    Sheet1.UsedRange.AutoFilter
  Else
    'setup filter based on selection
    Sheet1.UsedRange.AutoFilter field:=Target.Column, _
                                Operator:=xlFilterValues, _
                                Criteria1:=Target.Value, _
                                VisibleDropDown:=True
  End If