AutoHotkey的函数对象的Bind方法绑定参数的应用
近期在写Excel数据批处理函数,想提取某列的每个数据是否匹配某某条件的所有单元格。
这种需求比较多,比如判断的值有:单元格值,字体颜色,单元格颜色等等,
判断条件有:相同,不同,正则,或在某多行字符串内等。
如果都写出来,可能会有N个函数,所以想统一用一个函数来循环,判断条件则用传入的函数来区分。
本文主要判断的是:判断某列数据是否和在多行字符串内。
比如我把产品的货号存到记事本文件(记事本文件相对固定,如果复制到当前Excel表的某列也可以),
然后判断单元格的货号是否和记事本内容匹配,这样就能提取出所有的单元格并存到arr供后面环节使用
rng := ComObjActive("Excel.Application").ActiveSheet.Range("A1:A20")
fun := Func("getLine").Bind(strFromTxt) ;核心,把函数getLine的第一个参数固定(strFromTxt用FileRead获取)
arrRes := loopCheckValueByFunc(rng, fun)
Msgbox(arrRes.Length() . "`n" . arrRes[1].Address . "`n" . arrRes[arrRes.Length()].Address)
Return
getLine(str1, str2) ;被判断的str1放第一个参数,可被Bind固定
{
Loop Parse, str1, "`n", "`r"
{
If (A_LoopField = str2)
Return A_Index
}
}
;遍历rng,找到符合函数条件的单元格
loopCheckValueByFunc(rng, funcObj, condition:=True)
{
xl := rng.Application
xl.ScreenUpdating := False
arr := []
For cellLoop In rng
{
;核心语句,每次循环,只需要传入当前单元格的值即可判断
;这句进行相应修改就能判断其他条件。
If (funcObj.Call(cellLoop.Value) = condition)
arr.Push(cellLoop)
}
xl.ScreenUpdating := True
Return arr
}
AutoHotkey的函数对象的Bind方法绑定参数的应用的更多相关文章
- [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法
js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...
- c++之函数对象、bind函数
函数对象实质上是一个实现了operator()--括号操作符--的类. class Add { public: int operator()(int a, int b) { return a + b; ...
- springmvc对象作为 目标方法的参数。
/** * Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值.支持级联属性. * 如:dept.deptId.dept.address.tel 等 */ ...
- promise核心技术 1 实例对象/函数对象
一个程序员要在看到代码的语法同时判断数据类型 知道语法是基础 基础才能延伸功能 //一行代码 a()[0]() // a() 首先推断出a是一个函数 //a()[0] 判断a函数的返回值是一个数组 ...
- js学习进阶中-bind()方法
有次面试遇到的,也是没说清楚具体的作用,感觉自己现在还是没有深刻的理解! bind():绑定事件类型和处理函数到DOM element(父元素上) live():绑定事件到根节点上,(document ...
- Javascript中call,apply,bind方法的详解与总结
在 javascript之 this 关键字详解 文章中,谈及了如下内容,做一个简单的回顾: 1.this对象的涵义就是指向当前对象中的属性和方法. 2.this指向的可变性.当在全局作用域时,thi ...
- js的bind方法
转载:http://www.jb51.net/article/94451.htm http://www.cnblogs.com/TiestoRay/p/3360378.html https://seg ...
- call, apply,bind 方法解析
call(), apply(),bind() 三者皆为Function的方法 call(),apply()的作用是调用方法,并改变函数运行时的context(作用上下文) bind() 的作用是引用方 ...
- 浅析 JavaScript 中的 Function.prototype.bind() 方法
Function.prototype.bind()方法 bind() 方法的主要作用就是将函数绑定至某个对象,bind() 方法会创建一个函数,函数体内this对象的值会被绑定到传入bind() 函数 ...
随机推荐
- 记一次idea性能调优
因自研的自动化测试工具包含压测功能,在自己本地代码开发完毕后进行测试,对目标接口进行1000次访问,发现idea在执行结束后变的异常卡顿,怀疑是idea工具或者程序代码存在问题,遂进行排查. ---- ...
- ZOJ 3769 Diablo III
描述 Diablo III is an action role-playing video game. A few days ago, Reaper of Souls (ROS), the new e ...
- window server 搭建git服务器
Git服务器Gogs简易安装-Windows环境 1.下载git for windows 1 https://github.com/git-for-windows/git/releases/dow ...
- poj 2259 Team Queue
Team Queue Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 2977 Accepted: 1092 Descri ...
- jenkins配置权限不对导致无法登陆或者空白页面解决办法
找到.jenkins/config.xml文件:替换为:1.<authorizationStrategy class="hudson.security.AuthorizationStr ...
- JSP中实现网页访问统计的方法【转】
我采用的是jsp网页,但是不管采用什么语言,原理是一样的. 第一种,单页面统计.就是说,只要点击这个页面就会统计一次. <body> <%!//在这种标记中定义的变量为全局变量 in ...
- Mac新手问题
[现象:]MAC下checkout代码时,报svn:E170013-unable to connect to a repository at url xxx, svn:E1700113: unable ...
- React.js 小书 Lesson19 - 挂载阶段的组件生命周期(二)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson19 转载请注明出处,保留原文链接和作者信息. 这一节我们来讨论一下对于一个组件来说,cons ...
- Java 字符串(String)格式转json格式
json是前后端传输数据的一种文本格式,json其实就是字符串,因为前后端传输数据时,只能传输字符串,我们又想传一些对象或者列表信息,这都是很常见的应用场景. 所以,我们需要在java代码中,把jav ...
- 记一次bug修复过程
我的建议,究竟有谁会看,以我的位置,到底能推动到哪一层可行性,可能性 问题:用户的数据丢失了.以为是修改操作 有bug,但查看了后端接口和前端校验,都没有发现问题.但是input数据没有日志[日志级别 ...