EXCEL 在单元格输入数值回车自动进行筛选

在A1单元格输入数值回车,excel自动对数据库B列进行筛选,显示我要查找的数据值,如何实现?

用VBA可以做到,效果如下

代码如下

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then

Dim tiaojian, quyu As String

tiaojian = [A1]
quyu = "$A$2:$B$6"

    If tiaojian = "" Then
    ActiveSheet.Range(quyu).AutoFilter Field:=2
    Else
    ActiveSheet.Range(quyu).AutoFilter Field:=2, Criteria1:=tiaojian
    End If
    
End If

End Sub

不懂就追问

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-09-26
从工具 选项 编辑 设置后
在excel单元格输入数据后回车,则活动单元格是当前单元格的上下左右(在方向右侧下拉选项中分别选择向上/向下/向左/向右)或保留在当前位置(不勾选 按enter后移动)。
第2个回答  2015-08-04
启动录制宏,然后在A1录入需要筛选的内容,并手工筛选B列(根据A1内容),停止宏录制。
最后修改自动产生的宏代码,主要是找到B列筛选内容,将其替换为A1单元格的值。追问

就是不知道在VBA中怎么替换筛选内容为A1单元格

追答

在工作表中首先定义名称:mydata为OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A$2:$A$65535),COUNTA(Sheet1!$2:$2),然后在工作表的事件函数中添加如下代码(具有通用性):

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim tiaojian, quyu As String
tiaojian = [A1]
If tiaojian = "" Then
'mydata为预先定义的名称“mydata=OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A$2:$A$65535),COUNTA(Sheet1!$2:$2))”
ActiveSheet.[mydata].AutoFilter Field:=2 '
Else
ActiveSheet.[mydata].AutoFilter Field:=2, Criteria1:=tiaojian
End If
End If
End Sub

第3个回答  2015-08-04
可以通过INDEX+SMALL+IF数组公式来实现自动显示筛选数据,而不是自动筛选的样式。
第4个回答  2015-08-04
请用竖直查找Vlookup功能,详细函数用法你百度一下,一下也说不清楚。
相似回答