VBA:踩坑,使用find严重拖慢速度10000倍

Excel条件函数实战:从IF到LAMBDA的业务规则建模指南 条件函数是电子表格中实现业务逻辑判断的核心能力,其本质是将现实世界中的‘且/或/非’规则转化为可计算、可验证的结构化表达。理解IF、SUMIFS、FILTER、XLOOKUP与LAMBDA等函数的底层逻辑——如三段式验证模型(输入源→判断器→输出域)、布尔数组运算机制及引用粒度差异——是构建稳定数据处理流程的关键。它不仅支撑日常的多条件筛选、动态评级、跨表查询等高频场景,更构成轻量级业务规则引擎的基础。尤其在需要应对模糊匹配、时间重叠检测、嵌套逻辑解耦及错误容错时,掌握条件函数的选型原则与协同规则,能显著提 阅读详情
'去数据源标查找
        'Set rst_info = st_src.Range("1:" & st_src.Rows.Count).Find(sh_kw)
        'If rst_info Is Nothing Then
             'Debug.Print src_sheet_name, "中不存在,跳过这个词:", sh_kw
             'Exit For
        'Else
            'Set pv_val = st_src.Cells(rst_info.Row, src_pv_col)
            'pv_val_test = "---"
            'Debug.Print sh_kw, "正常查询写入中"
            'Debug.Print rst_info.Row, rst_info.Column, pv_val.Value, rst_info.Value
            'set value
            'st_dst.Cells(i, dst_pv_col) = pv_val.Value
            'arr_data_uv(i) = pv_val.Value
        'End If

排查了一整天终于知道什么影响性能了!fk

 Set rst_info = st_src.Range("1:" & st_src.Rows.Count).Find(sh_kw)

换数组获取下标的方式:

  
       sh_kw = kw_i.Value
       For j = 1 To endrow_src - 1
        If sh_kw = Arr_src(j) Then
            Debug.Print "founded:", Arr_src(j), sh_kw
            Set pv_val = st_src.Cells(j, src_pv_col)
            'pv_val_test = "---"
            'Debug.Print sh_kw, "正常查询写入中"
            Debug.Print j, src_pv_col, pv_val.Value
            'set value
            st_dst.Cells(i, dst_pv_col) = pv_val.Value
            'arr_data_uv(i) = pv_val.Value
            Exit For
        End If
        
       Next j

LVGL v9的lv_scale控件实战:5分钟打造动态仪表盘(附完整代码) 本文详细介绍了LVGL v9中lv_scale控件的实战应用,通过5个关键步骤快速打造动态仪表盘。文章涵盖核心特性解析、代码实现、样式定制及性能优化,适用于工业HMI、智能家居等场景,并附完整代码示例。 阅读详情

相关推荐

AutoSAR MemMap模块概述及配置参数详解

这个模块是干啥的?它是用来配置Memory Mapping and Compiler Abstraction module。

4454

他山之石——使用VBA进行单元格查找(Find/Match with VBA

这节对我的启发是,是否可使用Find/Match或其他方法来替代worksheetfunction.vlookup方法,从而提高工作中的一个报表的生成速度(目前耗时45分钟左右)。似乎可以用字典+数组的方法得到最高的性能,要不要试一试?这是个问题。Option Explicit '1 使用循环查找 (在单元格中查找效率太低) '2 调用工作表函数 Sub c1() '判断是否存在...

预见未来to50的专栏 3202

华为光猫HN8346X6补全 shell固件

HN8346X6 恢复华为登陆页面运营商: 中国联通设备型号: WO-36描述: OptiXstar HN8346X6 Asymmetric 10G EPON Terminal (PRX/PRODUCT ID:2150084496LDMA041849)软件版本: V5R021C00S130制造信息: 2150084496LDMA041849.CC02ONT注册状态: 未注册,未授权。联通设备标识: 01FFFFFFFF011FFF19C0BC9AD75B5074

linux 遍历目录查找文件find太慢,Linux下比find快N的文件查找命令

使用linux操作系统的人,一般都用过文件查找命令find,在文件数量非常庞大的时候,比如在高通的android工程项目中,目录大小有十几个G,文件数量非常多,用find命令就太慢了。下面介绍一个比find快得多的命令,搜索任何文件几乎都能在一秒内返回,时间复杂度O(1)。mlocate这个命令的原理是,先为文件系统创建索引数据库,mlocate只是搜索索引,所以速度快准备工作:创建数据库(创建索...

weixin_28837817的博客 2810

find vba 模糊_vba语言中find 的用法

各位高手,在使用EXCEL中的VBA时,遇到了用find找不到的问题。程序如下:明明刚从第19列中把一个值给了mytmpcell,但又从此列中找到与mytmpcell的value相同的单元格,就找不到了。并且...各位高手,在使用EXCEL中的VBA时,遇到了用find找不到的问题。程序如下:明明刚从第19列中把一个值给了mytmpcell,但又从此列中找到与mytmpcell的value相同的单...

weixin_39963440的博客 349

数组常见的遍历循环方法、数组的循环遍历的效率对比

1、遍历数组的方法: 1-1、for / while  最普通的循环 效率最高 兼容ie6 tips:for循环更适用于循环的开始和结束已知,循环次数固定的场合;while循环更适合于条件不确定的场合 1-2、for in  兼容ie6,效率最差(效率可看最下面的对比) for in 会把继承链的对象属性都会遍历一遍,所以会更花时间. var arr = ['red', 'green'

kongjiea笔记 1万+

VBA使用find() 和 match() 进行查找时,可能出现的各种错误(我犯的各种错误总结)

最近因为在窗体里要做对工作表sheet的操作,出现了各种低级错误 我逐一在这总结下,希望自己反思,并以后引以为戒 数据源 1 正确的代码 Sub test5032() Dim a As Range in1 = InputBox("请输入一个电影名") Set a = Range("a1:a15").Find(in1) If a Is Nothing Then Ra...

奔跑的犀牛先生 2万+

Excel函数实战指南:20%核心函数解决80%职场数据难题

在数据处理与分析领域,掌握核心工具是提升效率的关键。Excel函数作为数据处理的基石,其原理在于通过预设的公式逻辑,对单元格数据进行计算、查找、统计与转换,从而实现自动化处理。这一技术价值在于将人工从繁琐、易错的手工操作中解放出来,确保结果的准确性与一致性,显著提升个人与团队的职场竞争力。无论是财务核算、销售分析、运营报告还是日常行政管理,高效的数据处理能力都是现代职场人的必备技能。本文聚焦于Excel常用函数的实战应用,深入解析了VLOOKUP、XLOOKUP、SUMIFS等核心函数,并提供了从单个函数使

weixin_30268071的博客 319

在Excel中使用VBAfind来返回找不到的数据

如果在Excel中使用VBAfind函数找不到数据,则可以返回“Nothing”。例如: Set foundCell = Worksheets("Sheet1").Columns(1).Find(What:="Data", LookAt:=xlWhole) If foundCell Is Nothing Then MsgBox "Data not found" Else MsgB...

weixin_42579969的博客 5332

加快VBA代码运行速度的技巧

我们知道,用VBA实现同一个效果可能有多种不同的方法,写出一个最有效率的代码是大家都追求的,但是假如我水平有限,经验不足,实践不多,或者逻辑线路的设计不够简洁清爽,是不是就无法大幅提高代码速度?当然不是,如果你学会使用以下技巧,即便你的代码设计水平一般,也可以让它的运行大大加快.

8435

VBA 二维数组查找并定位数据

VBA 二维数组查找并定位数据

LILI00000的专栏 5155

VBA-加快你的代码运行速度--转自ExcelHome

原文链接:http://club.excelhome.net/thread-1286472-1-1.html 致敬,感恩,ExcelHome,在那里学到了很多 主题:VBA-加快你的代码运行速度 我们知道,用VBA实现同一个效果可能有多种不同的方法,写出一个最有效率的代码是大家都追求的,但是假如我水平有限,经验不足,实践不多,或者逻辑线路的设计不够简洁清爽,是不是就无法大幅提高代码速度?当然不是,如果你学会使用以下技巧,即便你的代码设计水平一般,也可以让它的运行大大加快. 首先记住...

STR_Liang的博客 1万+

VBAFIND方法的使用说明zz

  Find 方法在区域中查找特定信息。 语法 表达式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat) 表达式   一个代表 Range 对象的变量。 参数 名称必选/可选数据类型描述 What 必选 Variant 要搜索的数据。可为...

weixin_34309435的博客 4789

Linux下的find指令

Linux下find命令提供了相当多的查找条件,功能很强大,但是不到万不得已的时候是不会用它来查找文件的,因为它存在两个缺陷:一是查找速度慢,二是费硬盘。        通常情况下,我们都是先使用whereis或者locate来查找,如果真的找不到了,才用find来查找。这里需要明白一点的是linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从

qq_29503203的博客 8199

vbafind用法

'Range.Find 方法'在区域中查找特定信息'语法'表达式 一个代表 Range 对象的变量。

pgymeitianjinbu的博客 8665

[VBA]关于查找方法(Find方法)的应用(三)

5.4 示例四:本示例所列程序将在工作簿的所有工作表中查找数值,提供了采用两种方法编写的程序,一种是Find方法,另一种是SpecialCells 方法。相对来说,使用Find方法比使用SpecialCells方法要快,当然,本示例可能不明显,但对于带大量工作表和数据的工作簿来说,这种速度差异就可以看出来了。(by fanjy from vbaexpress.com)。示例代码如下,代码中有简要的

gxiyv的专栏,欢迎您的光临指导! 1万+

VBA 代码性能优化的7种方法

计算次数很影响vba代码的运行速度,所以要尽可能的减少计算的次数,能在循环外计算出结果的,就不要在循环内计算。调用工作表函数可以让代码更简捷,但速度却不理想…减少对工作表函数的调用也是提升程序速度的方法之一。调用对象是非常非常的耗费资源的,所以一定要尽可能的少调用对象。禁止程序运行过程中的屏幕更新进而提高运行速度。减少工作表函数的使用。减少vba函数的使用

weixin_43837855的博客 4616

云计算工程师常见故障-003-提升find查找文件性能

问题:在tmp目录下有大量包含jpg_*的临时文件,每天晚上凌晨三点对一天前的文件进行清理。之前在crontab下跑如下脚本,但是发现脚本效率很低,每次执行时负载猛涨,影响到其他服务。脚本内容如下。/bin/bash。

老韩的Linux云计算架构师进阶之路 1030

vbafind方法查找1

注意:Find方法需要Range对象,也就是需要在单元格区域中查找。 不能在数组中查找。

pgymeitianjinbu的博客 9241

linux 遍历目录查找文件find太慢,linux文件查找-find

findfind 是实时查找工具,通过遍历指定路径完成文件查找工作特点:查找速度略慢精确查找实时查找查找条件丰富可能只搜索用户具备读取和执行权限的目录格式:find [OPTION]... [查找路径] [查找条件] [处理动作]查找路径:指定具体目标路径;默认为当前目录查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件处理动作:对符合条件的文件做操作...

weixin_36068199的博客 1394
上一篇: VBA:基础查找返回行列号及地址
下一篇: js 的input checked 自动选中通过点击事件选中
nedwons
博客等级 码龄9年 311粉丝 572原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值