vba 中间带大括号 数组公式 怎么写

如题所述

数组大括号有两种:❶通过Ctrl+Shift+Enter组合键输入,❷手工输入的数组大括号{}。
例子:判断员工上下班用的公式LOOKUP很典型,它同时要求按组合键公式内也有手工输入的大括号,并且有函数在里面。=LOOKUP(B32,({0,11.5,12.3,17}-1%%%)/24,{"上午","中午","下午","晚上"})
那么它们在vba中怎样写语句呢?方式很灵活,花样也很多。
❶通过Ctrl+Shift+Enter组合键输入的最简单vba处理:①单元格申明用FormulaArray,不是普通公式的Formula,公式部分则用双引号引起来,②函数公式则用WorksheetFunction,有时还需要变换成其他函数公式 ,见第二个例子。
ActiveCell.FormulaArray = "=VLOOKUP(R1C21&R1C22,IF({1,0},C4&C11,C15),2,0)"
❷手工输入的数组大括号{},在vba不用引号方式就行不通了。变通方式有两种:①改用if,Select Case等传统方式处理,②改成array表达式。数组大括号{}其实就是array()的简写。
判断员工上下班用的公式在vba中就可以写成这个样子
Cells(10, 9) =WorksheetFunction.LOOKUP(B32,(array(0,11.5,12.3,17)-1%%%)/24,array("上午","中午","下午","晚上"))
有人嘲笑在vba中用公式的方式,既然微软件提供了这种方式说明它很有存在的必要,其中一个重要原因是有很多公式运行效率远大于使用者编程,另一个是用公式表达式更简洁,象上面这个判断员工上下班的考勤公式用if很复杂,遇到集团公司,有许多种上班日程则直接让公式崩溃。同样在vba中也会使程序很复杂无论运行效率还是维护都很差。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-21
如果套用表格 数组公式,可以录制宏
或者写为 纯代码本回答被网友采纳
第2个回答  2019-02-21
我二天有一个,唱歌哈哈镜,发个红包饥渴男,过一会不敢吃感觉,干活还不能快快快,多的地方炒粉干GV,发挥好你看看,顾好吧就看看,v姐姐不能看,吃你就,干活好吧救苦救难,吃货白白净净真舒服发图GV胡UI就加吧狙击,急急急高低床
相似回答