ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 实在受不了这个速度了!查找并选中指定字符单元格!

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-20 16:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yjh_27 发表于 2019-1-20 14:25
减少合并次数  提速

老师非常感谢您的代码,学习了。请教如何合并减少合并次数啊?谢谢

今天小花送完了,来日补上,不胜感激!

TA的精华主题

TA的得分主题

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

谢谢老师的代码,刚测试了,确实速度显著提升,我的电脑几次测试都在2.6秒左右,比我之前的快的太多了。

感谢感谢。今天小花用完了,来日补上!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-20 16:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
huanghai22 发表于 2019-1-20 14:31
这个速度不知道满不满意?

很惊喜!大神代码我还没能完全理解,还在学习。刚抄写下来测试了,速度在2.9秒左右,已经很棒了!小遗憾是最下面一部分的符合的单元格并没有选中。我看自己能否完善下,您的代码思路值得大家学习。非常感谢

今日小花用完,来日补上,略表谢意!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-20 16:37 | 显示全部楼层
想不到自己一个小小的需求,得到论坛诸多老师们的关注和支持!心理非常感动,感谢各位老师的代码和思路。通过对上面各位老师代码自己测试,现在基本能做到最快的速度, 已经到3秒内了。这么多老师的回帖让我这样小白除了学习代码外,更加感受了论坛老师们的 智慧、热心、共享的精神,再次感谢各位!
今日小花用完了,对各位老师的帮助无法表谢,来日一一补上!thanks!

再次期待能有更多的老师提供解决思路,期待学习!

TA的精华主题

TA的得分主题

发表于 2019-1-20 17:08 | 显示全部楼层
yjh_27 发表于 2019-1-20 14:25
减少合并次数  提速

'学习一下,请问大神怎么才能合并次数,,,

Option Explicit

Sub test()
  Dim i, j, rng As Range, m, n, arr, t, s As String
  t = Timer
  arr = [a1].CurrentRegion
  ReDim brr(1 To UBound(arr, 1) * UBound(arr, 2) / 42, 1 To 1) As String
  For i = 2 To UBound(arr, 1)
    For j = 1 To UBound(arr, 2)
      If InStr(arr(i, j), "昆山") > 0 Then
        m = m + 1
        s = s & "," & Cells(i, j).Address(0, 0)
        If m Mod 42 = 0 Then
          n = n + 1: brr(n, 1) = Mid(s, 2)
          s = vbNullString
        End If
      End If
  Next j, i
  If m = 0 Then Exit Sub
  If Len(s) Then n = n + 1: brr(n, 1) = Mid(s, 2)
  Set rng = Range(brr(1, 1))
  For i = 2 To n
    Set rng = Union(rng, Range(brr(i, 1)))
  Next
  rng.Select
  Debug.Print m, Format(Timer - t, "0.00s")
End Sub

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-1-20 17:53 | 显示全部楼层
wfchenyiting 发表于 2019-1-20 16:37
想不到自己一个小小的需求,得到论坛诸多老师们的关注和支持!心理非常感动,感谢各位老师的代码和思路。通 ...

因為這個特別啊,一般都是運算什麼的,速度沒問題
但這個要不停連接對像的,真的想知道怎可加快速度

TA的精华主题

TA的得分主题

发表于 2019-1-20 18:09 | 显示全部楼层
条条大路通罗马,每个人的思路不一样。方法很多……

TA的精华主题

TA的得分主题

发表于 2019-1-20 18:35 | 显示全部楼层
wfchenyiting 发表于 2019-1-20 16:22
老师非常感谢您的代码,学习了。请教如何合并减少合并次数啊?谢谢

今天小花送完了,来日补上,不胜感 ...

代码在37L啊

TA的精华主题

TA的得分主题

发表于 2019-1-20 18:43 | 显示全部楼层
学习了,不过为什么我写代码的时候range最多只能33个单元格地址,再多就提示方法range对象错误了

TA的精华主题

TA的得分主题

发表于 2019-1-20 18:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
micch 发表于 2019-1-20 18:43
学习了,不过为什么我写代码的时候range最多只能33个单元格地址,再多就提示方法range对象错误了

用相对地址,字符少。
限制长度255
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-23 23:16 , Processed in 0.044439 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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