以下是引用fcy在2004-10-30 10:55:00的发言:
如何扑捉自动筛选的动作?
当进行筛选操作时,能不能通过vba扑捉当前是否进行了筛选操作,并做出相应反应,触发相应事件。
现在可以解决这个问题了:在表中任意插入一个公式,选用Worksheet_Calculate()重新计算事件即可实现该功能。以下宏根据实际需要可进行修改:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False '加上此语句非常重要
Dim i As Integer
If Not Sheets("Sheet1").AutoFilterMode Then
Cells(2, 4).Value = "职务:"
Exit Sub
End If
'填充筛选条件
With Sheets("Sheet1").AutoFilter
'For i = 1 To 4
' If .Filters(i).On Then Cells(1, i).Value = "*" & .Filters(i).Criteria1
'Next
If .Filters(2).On Then
fit = .Filters(2).Criteria1
Cells(2, 6).Value = Mid(fit, 2)
Else
Cells(2, 6).Value = ""
End If
End With
Application.EnableEvents = True '加上此语句非常重要
End Sub
'20041031调试成功
以上宏适用于直接筛选,不适用于自定义筛选! [em17][em17][em17][em17][em17][em25][em25][em23]
[此贴子已经被作者于2004-11-2 8:16:24编辑过] |