ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ldy888

[原创] 0秒,快速模糊搜索

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-5-15 20:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

太强了,学习中

TA的精华主题

TA的得分主题

发表于 2006-5-15 21:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一边上QQ,Bt,MP3,开网页,用了2秒,P4,1.6G

TA的精华主题

TA的得分主题

发表于 2006-5-15 22:10 | 显示全部楼层
不是要行号,需要该行的全部内容。。。。

TA的精华主题

TA的得分主题

发表于 2006-5-16 00:06 | 显示全部楼层
以下是引用[I]ldy888[/I]在2006-5-14 20:24:23的发言:[BR]
以下是引用[I]qq198310[/I]在2006-5-14 11:12:16的发言:

请问楼主,我想要查询的结果是含有该字符的单元格所在的行的数据,如何实现??

第一个Cells(a, 4) = r改为 Cells(a, 4) = Sheets(ch.Name).Cells.Find(What:=[b2]).Row 第二个Cells(a, 4) = r改为 Cells(a, 4) = Sheets(ch.Name).Cells.FindNext(after:=Sheets(ch.Name).Range(r)).Row 如要查列号把两个ROW 改为 Column
我想要的不是行号,而是该行的全部内容,该如何实现,谢谢!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-16 01:45 | 显示全部楼层

如果一行中有几个相同关键字,就会反应出相同的几行.

把代码中所有的"[b2]"都改成"[b1]",搜索内容要写在B1格

第一处Cells(a, 5) = Sheets(ch.Name).Range(r) 改为

Sheets(ch.Name).Rows(Sheets(ch.Name).Cells.Find(What:=[b2]).Row).Copy Rows(a + 1)

第二处Cells(a, 5) = Sheets(ch.Name).Range(r)改为

Sheets(ch.Name).Rows(Sheets(ch.Name).Cells.FindNext(after:=Sheets(ch.Name).Range(r)).Row). _Copy Rows(a + 1)

如不想要表名和单元地址,把两处Cells(a, 3) = ch.Name Cells(a, 4) =r 都去掉,再把上文的两处+1去掉

[此贴子已经被作者于2006-5-16 2:11:27编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-16 01:57 | 显示全部楼层
以下是引用[I]nawong[/I]在2006-5-15 16:48:35的发言:[BR]

Do
.
.
.
Loop While r <> fr
會讓代碼更簡潔

我水平不高.用过,但感觉慢很多,也许是我用的不对. do loop 用的不是太熟,要不请师兄直接改个完整的发上来,我看看是哪用的不对. 不过我发现用excel提供的组合语句,反不如自已用简单语句编一个相同功能的跑得快. 我一般都是分别FOR它个一千几百次,才决定用哪个的.

TA的精华主题

TA的得分主题

发表于 2006-5-16 10:50 | 显示全部楼层
以下是引用[I]ldy888[/I]在2006-5-16 1:57:13的发言:
以下是引用[I]nawong[/I]在2006-5-15 16:48:35的发言:

Do
.
.
.
Loop While r <> fr
會讓代碼更簡潔

我水平不高.用过,但感觉慢很多,也许是我用的不对. do loop 用的不是太熟,要不请师兄直接改个完整的发上来,我看看是哪用的不对. 不过我发现用excel提供的组合语句,反不如自已用简单语句编一个相同功能的跑得快. 我一般都是分别FOR它个一千几百次,才决定用哪个的.
Do.....Loop方法, 共用學習 Sub nawong() 'use Do....Loop Dim sheet As Worksheet, a As Long Dim rangeA As Range, Adr As String t = Now Application.ScreenUpdating = 0 For Each sheet In ActiveWorkbook.Sheets If sheet.Index 1 Then Set rangeA = sheet.UsedRange.Find([b2]) If rangeA Is Nothing Then GoTo 11 Adr = rangeA.Address Do Cells(2 + a, 3) = sheet.Name Cells(2 + a, 4) = rangeA.Address Cells(2 + a, 5) = rangeA a = a + 1 Set rangeA = sheet.UsedRange.FindNext(rangeA) Loop While rangeA.Address Adr End If 11 Next Application.ScreenUpdating = 1 MsgBox (Now - t) * 24 * 3600 & "s" End Sub AF3t0yII.rar (15.27 KB, 下载次数: 65)
[此贴子已经被作者于2006-6-14 15:29:04编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-16 11:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

程序简单,用处很大,收藏先.

TA的精华主题

TA的得分主题

发表于 2006-5-16 11:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看ldy888兄滴贴子,总是让人愉悦滴。
读ldy888兄滴代码,不吃力,但收获却是相当不小滴。
那代码写滴,是相当不错滴。俺给改改,也是相当不错滴。
可是俺上传这个东东,竟用了俺N多倍于改改的时间!

TA的精华主题

TA的得分主题

发表于 2006-5-16 11:39 | 显示全部楼层

滴、滴、滴......

用哥这个做得很好滴.哈哈.

收下滴.

[em23][em23][em23]

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 10:23 , Processed in 0.026215 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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