【问题标题】:Create macro upon double click cell display filter in new sheet在新工作表中双击单元格显示过滤器时创建宏
【发布时间】:2012-11-08 07:01:26
【问题描述】:

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

表 1 点击 Sheet1 中的任意单元格后,将自动根据单元格 A 和 B 进行过滤。

表 2 双击Sheet1自动显示过滤条件

例如:当我双击 C1 时,Sheet2 将自动显示基于 A1 和 B1 的过滤数据,同样的事情如果我在 Sheet2 上双击 C2 将自动显示基于 A1 和 B2 的过滤数据。

这里真的需要专家的帮助。

【问题讨论】:

  • 至少可以通过单击完成。不确定双击,因为我认为这是完全保留用于输入单元格进行编辑的。
  • 数据转换的屏幕截图或迷你文本示例或以之前/之后的方式过滤目标非常有助于理解您的目标 ;)

标签: excel vba


【解决方案1】:

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

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

【讨论】:

  • 好吧,我会成为枪的儿子!
  • 您好,再次感谢您的建议。正是关于过滤,文件的链接可以在这里找到,sendspace.com/file/1t19oj 而它应该在单击或双击时根据条件 A1 和 B1 在新工作表中自动过滤
  • @user1808404 好的,为了这可能对您有帮助的任何人,请发布一个真实的过滤示例并改进您的问题。如果您希望其他人来完成您的工作,这并不难,而且您应该做的最少。我编辑了我的答案以包含一个基于一个单元格的基本过滤器。您应该能够将其应用于您的情况,如果没有,请提供更详细的过滤问题描述。
  • 再次嗨,指的是你以前的。我真的不知道如何在 VBA 上执行此操作,但如果手动完成,我当然可以简单地将过滤器放在 sheet2 中,而不是从 sheet1 中获取参考,而不是通过手动过滤它 sheet2,我需要从下拉列表中进行选择。 sendspace.com/file/zl2lt1
猜你喜欢
  • 1970-01-01
  • 2019-03-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
相关资源
最近更新 更多