Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1132|回复: 10

[已解决]指定单元格关键字筛选结果

[复制链接]
发表于 2022-1-5 11:56 | 显示全部楼层 |阅读模式
需求:
1.在F1输入关键这字,对A列进行筛选,只显示符合条件的
2.在F2输入关键这字,对B列进行筛选,只显示符合条的
3.在F3得出符合条件的行数!
搜狗截图20220105115455.png

最佳答案
2022-1-5 20:56
贴上代码,与附件中代码相比,只是把没有用到的变量给删了

  1. Sub 按文件名()
  2.     Dim r&, Arr, Brr, fn$, n%, x%
  3.    
  4.     fn = Sheet1.Range("F1")
  5.     If Len(fn) = 0 Then Exit Sub
  6.     With Sheet2
  7.         r = .Cells(Rows.Count, 1).End(xlUp).Row
  8.         Arr = .Range("a2:c" & r)
  9.     End With

  10.     ReDim Brr(1 To 3, 1 To 1)
  11.     x = 0
  12.     For i = 1 To UBound(Arr)
  13.         If InStr(Arr(i, 1), fn) > 0 Then
  14.             x = x + 1
  15.             n = n + 1  ' 符合条件时的记录数(记数器)
  16.             ReDim Preserve Brr(1 To 3, 1 To x)
  17.             For j = 1 To 3
  18.                 Brr(j, x) = Arr(i, j)
  19.             Next
  20.         End If
  21.     Next
  22.     With Sheet1
  23.         .Range("a2:c" & .Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
  24.         .Range("a2").Resize(UBound(Brr, 2), UBound(Brr, 1)) = Application.WorksheetFunction.Transpose(Brr)
  25.         .Range("F3") = n
  26.     End With
  27. End Sub
复制代码

获取文件属性.rar

12.37 KB, 下载次数: 5

发表于 2022-1-5 12:11 | 显示全部楼层
回复

使用道具 举报

发表于 2022-1-5 12:14 | 显示全部楼层
按这误差
68.5185546875KB 更加符合 70KB
回复

使用道具 举报

发表于 2022-1-5 13:40 | 显示全部楼层
請測試看看,條件如下,謝謝


1.在F1输入关键这字,对A列进行筛选,只显示符合条件的 >> 包含F1字
2.在F2输入关键这字,对B列进行筛选,只显示符合条的 >> 小於F2數值

指定单元格关键字筛选结果.zip

21.69 KB, 下载次数: 3

回复

使用道具 举报

发表于 2022-1-5 15:19 | 显示全部楼层
上个效果图,如楼主有需要再上附件

220105001.gif
回复

使用道具 举报

 楼主| 发表于 2022-1-5 20:22 | 显示全部楼层
zglibk 发表于 2022-1-5 15:19
上个效果图,如楼主有需要再上附件

能上传个附件吗
回复

使用道具 举报

发表于 2022-1-5 20:43 | 显示全部楼层
请测试附件
获取文件属性_220105_Demo 测试.rar (17.91 KB, 下载次数: 7)
回复

使用道具 举报

发表于 2022-1-5 20:46 | 显示全部楼层
将你原来的按钮中的代码稍微做了修改:将获取到的文件信息保存到了 Sheet2 中,Sheet1 专门用来显示查询结果。
另外,文件尺寸查询没写,可依葫芦画瓢再写一个 sub 给单元格触发时调用
回复

使用道具 举报

发表于 2022-1-5 20:56 | 显示全部楼层    本楼为最佳答案   
贴上代码,与附件中代码相比,只是把没有用到的变量给删了

  1. Sub 按文件名()
  2.     Dim r&, Arr, Brr, fn$, n%, x%
  3.    
  4.     fn = Sheet1.Range("F1")
  5.     If Len(fn) = 0 Then Exit Sub
  6.     With Sheet2
  7.         r = .Cells(Rows.Count, 1).End(xlUp).Row
  8.         Arr = .Range("a2:c" & r)
  9.     End With

  10.     ReDim Brr(1 To 3, 1 To 1)
  11.     x = 0
  12.     For i = 1 To UBound(Arr)
  13.         If InStr(Arr(i, 1), fn) > 0 Then
  14.             x = x + 1
  15.             n = n + 1  ' 符合条件时的记录数(记数器)
  16.             ReDim Preserve Brr(1 To 3, 1 To x)
  17.             For j = 1 To 3
  18.                 Brr(j, x) = Arr(i, j)
  19.             Next
  20.         End If
  21.     Next
  22.     With Sheet1
  23.         .Range("a2:c" & .Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
  24.         .Range("a2").Resize(UBound(Brr, 2), UBound(Brr, 1)) = Application.WorksheetFunction.Transpose(Brr)
  25.         .Range("F3") = n
  26.     End With
  27. End Sub
复制代码

回复

使用道具 举报

 楼主| 发表于 2022-1-5 21:06 | 显示全部楼层
zglibk 发表于 2022-1-5 20:56
贴上代码,与附件中代码相比,只是把没有用到的变量给删了

感谢帮忙,一会有空了在测试,!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 20:28 , Processed in 0.214513 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表