- ?
要说Excel中最有用的一个函数,它才是函数中的NO.1
Tiffany
展开
可能对于在用Excel的朋友来讲,平时使用的比较多的一个函数,那就是Vlookup函数,今天小编就来告诉大家一个Excel中最有用第一个函数,那就是Countif函数,这个函数的适用范围远远高于vlookup函数,所有把它列为最有用函数的NO.1也一点都不为过。下面我们就来学习一下这个函数。
今天教大家这个函数主要从以下6个场景来进行学习。
一对一对比两列数据多对多对比两列数据禁止重复输入输入时必须包含指定字符帮助Vlookup实现一对多查找统计不重复值的个数
:场景1:一对一核对两列数据
【例】如下图所示,要求对比A列和D列的姓名,在B和E列出哪些是相同的,哪些是不同的。
公式:
B2 =IF(COUNTIF(D:D,A2)>0,"相同","不同")
E2 =IF(COUNTIF(A:A,D2)>0,"相同","不同")
场景2:多对多核对两列数据
【例】如下面的两列数据,需要一对一的金额核对并用颜色标识出来。
步骤1 在两列数据旁添加公式,用Countif函数进行重复转化。
=COUNTIF(B$2:B2,B2)&B2
步骤2按ctrl键同时选取C和E列,开始 - 条件格式 - 突出显示单元格规则 - 重复值。
设置完成后后,红色的即为一一对应的金额,剩下的为未对应的。如下图所示
场景3:禁止重复录入
禁止在G列重复录入数据:
数据 - 有效性(2016版为数据验证) - 序列 - 输入公式
=COUNTIF(G:G,G1)=1
场景4:输入内容必须包括指定字符
【例】在列输入的内容,必须包含字母A。
=COUNTIF(H1,"*A*")=1
:如果输入不含A的字符就会警示并无法输入
场景5:帮助Vlookup函数实现一对多查找
【例】如下图所示左表为客户消费明细,要求在F:H列的蓝色区域根据F2的客户名称查找所有消费记录。
:步骤1 在左表前插入一列并设置公式,用countif函数统计客户的消费次数并用&连接成 客户名称+序号的形式。
A2: =COUNTIF(C$2:C2,C2)&C2
步骤2 在F5设置公式并复制即可得到F2单元格中客户的所有消费记录。
=IFERROR(VLOOKUP(ROW(A1)&$F$2,$A:$D,COLUMN(B1),0),"")
场景6:计算唯一值个数
【例】统计A列产品的个数
=SUMPRODUCT(1/COUNTIF(A2:A7,A2:A7))
总结:总的来讲Countif函数虽然只是单一条件的计数函数,但它在与其他函数搭配使用的时候,那他的作用将会变的无限大。所以说大家可以多去学习了解一下更多的函数嵌套的使用方法。
- ?
Excel函数公式:Excel常用函数公式——基础篇(九)
干天川
展开
一、COUNTA函数。
作用:统计区域中非空单元格的个数。
语法:=COUNTA(单元格区域)。
方法:
在目标单元格中输入公式:=COUNTA($A$2:A2)。
解读:
此公式主要应用了函数的性质和对单元格的引用,实现了合并单元格序号填充的技巧。
二、SUMIF函数。
作用:条件求和。
语法:=SUMIF(条件范围,条件,求和范围)。
方法:
在目标单元格中输入公式:=SUMIF(B3:F9,J3,C3:G9)。
解读:
巧用SUMIF函数实现“隔列隔行”求和。
三、LEN+MONTH函数。
作用:判断月份所属季度。
方法:在目标单元格中输入公式:=LEN(2^MONTH(F3))。
解读:
利用LEN和MONTH函数的功能实现当前日期所属季节的判断。
四、SUMPRODUCT函数。
作用:返回相应的数组或区域乘积的和。
语法:=SUMPRODUCT(数组1,数组2……数组N)
方法:
在目标单元格中输入公式:=SUMPRODUCT(($C$3:$C$9>C3)/COUNTIF($C$3:$C$9,$C$3:$C$9))+1。
解读:
巧用函数特点实现“中国式排名”。暨重复名次不占用排名序号。
五、SUMPRODUCT函数。
作用:统计不重复值个数。
方法:
在目标单元格中输入:=SUMPRODUCT(1/COUNTIF(E3:E9,E3:E9))。
- ?
excel函数应用:宏表函数如此简单快捷
乐萱
展开
最近收到在某快递上班的周同学问题求助,主要是在计算包裹的体积时遇到了些麻烦事。
下表是周同学近期整理的快递包裹尺寸数据,其中重要一项工作就是通过长*宽*高来计算出包裹的体积。
周同学表示其实自己也能做出来,只不过是方法比较笨拙原始。
一、分列数据计算体积
周同学自己使用的方式是分列,由于长宽高 3个数字均由星号隔开,所以使用分列的方式将数字分别放置在三个单元格中即可完成计算体积。
操作步骤
1、选中G列数据后单击【数据】选项卡中的【分列】
2、出现分列向导对话框,我们一共需要3步完成数据分列。第一步是选择分列的方式:【分隔符号】、【固定宽度】,周同学的表中有星号分隔数据,可以使用分隔符号分列,所以我们选择【分隔符号】后单击【确定】。
注:【分隔符号】方式分列主要运用于有明显字符隔开的情况,【固定宽度】主要运用于无字符隔开或者无明显规律的情况手工设置分列字符的宽度。
3、单击【下一步】进入文本分列向导第二步,在这里我们可以选择分隔符号,可以是TAB键、分号、逗号、空格、其他自定义。由于默认选项中没有星号,所以我们勾选其他,然后输入星号即可。
当输入完成后,下方数据预览可以看到数据中的星号字符变成了竖线,已经完成了分列。
4、单击【下一步】,列数据格式为常规,直接单击【完成】即可。
此时出现提示:此处已有数据。是否替换它?
由于分列前G列内容包含长宽高尺寸数据,分列后,G列被替换成“长”。
直接单击【确定】,可看到分列结果。
5、根据长宽高轻松计算出包裹体积。
周同学觉得这样还不是最好的方案,因为表格列数是固定的,而且数据都已经和其他表格相互关联,分列数据后插入了2个新列,那数据岂不是都乱了吗?
二、提取数字计算体积
我们来试试用文本函数来解决。(前方高能,这里只需要了解一下就可以了,主要是为了突出第三种方式的简单)
既然我们要计算包裹的体积,那么我们只需要将G列中的长宽高数据分别提取出来然后相乘即可。
提取长度数据:
函数公式:
=LEFT(G2,FIND("*",G2,1)-1)
提取宽度数据:
函数公式:
=MID(G2,FIND("*",G2,1)+1,FIND("-",SUBSTITUTE(G2,"*","-",2))-1-FIND("*",G2,1))
提取高度数据:
函数公式:
=RIGHT(G2,LEN(G2)-FIND("-",SUBSTITUTE(G2,"*","-",2),1))
最后我们将3个函数公式合并嵌套统计得出包裹的体积。
好了,我知道上方的函数公式太复杂,大家都不想学,所以也没给大家做过多的函数解析,简单粗暴,下面给大家隆重推荐一个最简单的方法:宏表函数。
三、EVALUATE函数计算体积
首先我们了解一下EVALUATE的含义,其实EVALUATE是宏表函数,宏表函数又称为Excel4.0版函数,需要通过定义名称(并启用宏)或在宏表中使用,其中多数函数功能已逐步被内置函数和VBA功能所替代,但是你一分钟学不会VBA,却可以学会宏表函数。
下面我们开始操作演示:
1、选中G列,单击【公式】选项中的【名称管理器】
弹出如下所示对话框:
2、单击【新建】,在【新建名称】对话框中输入名称为TJ,应用位置输入函数公式
=EVALUATE(Sheet1!$G$2:$G$44)/1000/1000( 备注:由于之前单位是厘米,我要将统计结果转化为立方米,所以需要除1000000)后单击【确定】。最后关闭名称管理器。
公式解析:
由于G列数据是长*宽*高,*在excel中就是乘法的意思,G列的数据本身就可以看作一个公式,我们只需要得到这个公式结果就可以啦,而EVALUATE的功能就是得到单元格内公式的值,所以在上图中,大家会发现,EVALUATE函数中的参数就只有一个数据区域。
3、见证奇迹的时刻到了。在H2单元格中输入TJ两个字母就能快速得到体积信息啦!
这种即简单又快捷还不用辅助列的方式是不是很棒!简直是3全其美!周同学的问题终于有了完美的解决方案。
说真的,大家有没有发现宏表函数在解决很多问题的时候都非常简单快捷?这篇文章只是一个引子,下次文章将给大家专门介绍宏表函数!
****部落窝教育-excel宏表函数****
原创:龚春光/部落窝教育(未经同意,请勿转载)
- ?
Excel函数公式:Excel常用函数公式——基础篇(七)
吹嘻
展开
一、LOOKUP函数。
作用:提取查询。
语法:=LOOKUP(查询值,查询范围)
方法:
在目标单元格中输入公式:=LOOKUP(9^9,C:C)、=LOOKUP(9^9,D:D)。
解读:
当需要查询最后一条相关记录时,查询值用一个很大的值9^9来替代,实现向下匹配。
二、TEXT函数。
作用:返回间隔分钟数。
语法:=TEXT(值,格式代码)。
方法:
在目标单元格中输入公式:=TEXT(G6-G4,"[m]分钟")。
三、INDEX+MATCH组合函数。
作用:动态查询所需的值。
方法:
在目标单元格中输入公式:=INDEX($B$3:$F$9,MATCH($B$13,$B$3:$B$9,0),MATCH(C$12,$B$2:$F$2,0))。
四、SUM函数。
作用:合并单元格求和。
方法:
在目标单元格中输入公式:=SUM(D3:D9)-SUM(E4:E9)。
五、NETWORKDAYS.INTL函数。
作用:计算两个日期之间的工作日天数。
语法:=NETWORKDAYS.INTL(开始日期,结束日期,周末方式,其它节假日)。
周末统计方式有:
方法:
在目标单元格中输入公式:=NETWORKDAYS.INTL(C3,D3,1)、=NETWORKDAYS.INTL(C3,D3,1,F4:F6)。
解读:
从实际的应用中给我们可以看出,如果省略第四个参数,默认为没有请假情况。
- ?
Excel深度进阶功能:VBA开发者喜爱的加密函数类
萧寻菡
展开
VBA的确是个很不错的编程工具,寄生在OFFICE内,无需安装庞大的开发环境,即开即用,方便灵活,能实现的事情也很多,但毕竟VBA是微软停止更新维护将近20年的一种语言,计算机的世界发展速度有多快大家有目睹,今天抛砖引玉,拿几个加密类函数来讲说一下VSTO较VBA开发的一些优势所在。
题外话
本人也是从Excel的VBA语言入门了编程世界的,然后很偶然的机会接触到VSTO,并且在一位热心的网友一路的帮助下,算是入门了C#语言,现在可以灵活地用C#实现自己想要的一些小功能(大部分是抄百度和google),然后可以在开源世界里找各式各样的类库轮子搬到自己的项目中来。
VBA要实现利用外界的资源这点,估计比较难,一般其他软件厂商只提供主流的编程语言的API接口或SDK。就算微软自己的.Net Framework类库集,也只能在.Net语言中使用,而不能供VBA所使用。
例如今天介绍的几个加密函数,在.Net Framework类库里,直接有现成的代码,几乎可以直接调用的程度,对于一些非OFFICE环境内的功能实现来说,使用VSTO开发或C#、VB.Net开发,开发效率还是有很大的提升。
一般像我这种水平的人,只需要不断地百度或google,就可以拿到现成的东西直接复用,VBA毕竟是业务开发者使用的编程语言,同时又是一个官方停止更新语言,仍然使用VBA做一些复杂的需求,有点吃力不讨好。
回到正题,加密函数介绍
今天介绍的加密函数有 生成MD5和RSA方式的加解密函数,具体这些加密原理我也不懂,我只负责搬运和它能够实现到所需的功能即可。
函数示例如下:因是给VBA开发者用,不多解释,大家都会百度。
在VBA代码中调用加解密函数方法
说到重点,VBA开发者可能更多场景还要回到自己在VBA代码中想要调用其他语言开发好的函数,例如此篇的自定义函数。
调用方法为:使用Application.Run方法
VBE代码编写
得到的结果一样
能够使用Application.Run来调用的前提是自定义函数的加载项已经被加载,即xll文件已经被Excel加载进来。如果使用代码来加载xll,也不复杂,使用AddIns.Add 方法,如下图所示
总结
在我过往发表的众多自定义函数里,大部分直接照搬了.Net Framework类库里的函数,让其能够在Excel环境以自定义函数的形式来使用,当中也收到许多反馈说能用自定义函数的人都自己写VBA代码,不会写代码的人也没必要用自定义函数,文件分发出问题等等如此这般的回复。反正个人觉得挺可惜的,人的见识不广时,依仗自己有限的知识体系,来给自己盖一个绝对性的结论,以至很多时候还在低效地运行着。
写此篇文章没有贬低VBA的作用,只是当有更好的东西时,花一点点学习成本去了解它,然后唯我所用,何尝不是一件美好的事情。
最后抛一个刚刚接触到的知识点,用xll的方式开发自定义函数,可以使用多线程功能,函数性能更佳,当然前提是函数符合多线程规范下。
- ?
Excel日常22:函数篇(最完整的计数三剑客)
哼唱
展开
喜欢、有用就点点关注
函数COUNT家族有5个成员,今天先介绍其中的三个家庭成员,它们分别是COUNT、COUNTA、COUNTBLANK。
一、函数定义
COUNT:计算区域中数字的单元格个数。COUNTA:计算区域中非空单元格的个数。COUNTBLANK:计算区域中空单元格的个数。
二、函数实例
▲
计算有数字的单元格个数
01
公式:=COUNT(A3:A11)不能转换为数字的文本、空白单元格、逻辑值、错误值都不计算在内。
计算非空单元格的个数
02
公式:=COUNTA(A17:A25)参数值可以是任何类型,包括空字符(""),但不包括空白单元格。
计算空单元格的个数
03
公式:=COUNTBLANK(A31:A39)空白单元格和空文本("")会被计算在内。
求成绩大于等于60的个数
04
公式:=COUNT(0^(B45:B51>=60))按三键结束(B45:B51>=60)部分成立的返回TRUE,不成立的返回FALSE。发生四则运算时TRUE相当于1,FALSE相当于0,利用0的任何次方等于0,0的1次方返回错误值的特性,将(B45:B51>=60)部分作为0的次方,得到{0;#NUM!;#NUM!;0;#NUM!;0;#NUM!},COUNT函数忽略错误值只统计有数字的单元格个数。
求缺勤率
05
公式:=COUNTBLANK(B57:B63)/COUNTA(B57:B63&""),记得带上花括号哦!先用COUNTBLANK函数算出未打卡的人数为2,因为有两个空白单元格,所以用COUNTA计算时加"",算出总人数为7,然后相除。
添加序号
06
在A69单元格输入公式:=IF(B69="","",COUNTA(B$69:B69)),向下填充。COUNTA(B$69:B69)部分是统计不为空的单元格个数,注意引用方式;然后用IF函数判断是不是空,为空就返回空,否则返回COUNTA函数计算的个数。
合并单元格添加序号
07
COUNTA法:选中区域A81:A87输入公式=COUNTA(A$80:A80)按Ctrl+Enter键结束
COUNT法:选中区域B81:B87输入公式=COUNT(B$80:B80)+1按Ctrl+Enter键结束
求平均销售额
08
在F93单元格输入公式:=SUM(B93:E93)/COUNT(B93:E93),向下填充。先用SUM函数求和算出总销售额,然后用COUNT算出有销售额的数目,再用SUM/COUNT得到平均销售额。
三、函数总结
1、COUNT:计算区域中数字的单元格个数。
①如果参数为数字、日期或者代表数字的文本,则将被计算在内;②逻辑值和直接键入到参数列表中代表数字的文本被计算在内;③如果参数为错误值或不能转换为数字的文本,则不会被计算在内;④如果参数是一个数组或引用,则只计算其中的数字。数组或引用中的空白单元格、逻辑值、文本或错误值将不计算在内。
2、COUNTA:计算区域中非空单元格的个数。
①参数值可以是任何类型,可以包括空字符(""),但不包括空白单元格;②如果参数是数组或单元格引用,则数组或引用中的空白单元格将被忽略;③如果不需要统计逻辑值、文字或错误值,请使用函数COUNT。
3、COUNTBLANK:计算区域中空单元格的个数。
①包含返回 ""(空文本)的公式的单元格会计算在内;②包含零值的单元格不计算在内。
爱上Excel合伙人2017出品
我们一直秉承简洁、优雅、高效的为读者分享工作中遇到的每一个Excel问题,不论是Excel技巧、函数、图表、VBA,甚至是有关于Excel的开发,只要你能提出来问题,我们总能给你一个满意的答案!
每天准时来一篇Excel在职场中的案例
- ?
Excel中的VBA代码你可以写出来,可是你真的会优化代码吗?
誓言
展开
我们很多时候在用Excel VBA去实现某一个功能的时候,也许会用到很多行的代码去实现我们最终要的结果。
可是有时候你殊不知,有些代码是经过录制宏产生的,或者语句繁琐,变量不正确从而造成你所写的程序运行的时间非常久,或者造成计算机的CPU使用率达到100%,严重可导致系统崩溃发生。
但是这样的结果显而易见,并不是我们想要的结果。我们想要的是一个可靠的,高效率的,简化操作的,提高劳工效率,减少错误率的,适应性强的程序。
所以我们不得不寻求更好的方法去改善,去优化代码,以寻求高效率完成我们的工作。
下面我们重点和大家分享一下,怎么去优化我们的代码:
1.关闭屏幕刷新,速度可以提升30%的速度。所以大家在写完代码的时候,不妨在我们程序最开始加上这句话,当然在程序执行完之前,也就是最后一句话的时候,你要记得将屏幕刷新打开。
Sub test()
Application.DisplayAlerts = False
Cells(1, 1) = 1
Application.DisplayAlerts = True
End Sub
2. 使用工作表函数,这句话的意思就是说我们某些时候,可以优先考虑Excel自带的函数去实现这个,而不是我们自己去写代码。当然效果都是一样的,但是时间可能就不是一样。
Sub ShtFunctions()
a.使用循环进行数据累加计算
For i = 1 To 40000
MySum = MySum + Cells(i, 1)
Next
b.直接使用工作表进行求和
Cells(1, 1) = Application.Sum(Range("A1:A40000"))
End Sub
3. 使用With-End With语句,减少引用对象的寻找速度,提高程序的效率。当然这样还有一个优点,就是我们要改变引用对象的时候,只需改变一个位置即可,这样也便于后期的维护和修改。
Sub test()
With Range("E5").Font
.Color = -16776961
.Font.Bold = True
.Name = "宋体"
.Size = 9
.Name = "Arial Unicode MS"
.Size = 9
End With
End Sub
4.数据类型的正确选用,这个也是非常关键的。这个就好像你去打水喝,正确的应该是拿杯子过去,但是你拿着一个很大的桶去接水喝,当然都可以完成喝水这个动作,但是明显就可以看出拿桶的那个人选择就有问题。其实在我的Excel中处理数据的能力也是不一样的,处理速度最快的是long>integer>byte>Single>Double>Currency。需要注意的是,如果我们不定义变量,那么系统默认为Variant类型,当我定义合适,速度就会有提升,所以每次我们千万记得要选择最合适自己的啦!
5.使用数组,数组和字典是VBA的核心功能,所有在可以使用数组的时候,千万记得使用数组。在某些时候,在使用数组和不使用数组对比下,速度可能相差100倍。尽量减少变量的使用,增加数组和字典的配套使用。还有就是多使用动态的数据,少使用静态的数据,数组的Redim和Preserve要常记得。
6.多清除对象的缓存,比如 Set d = Nothing,这句话的意思就是卸除对象的引用。这样也可以稍微加快一点执行的速度。另外我们可以通过减少循环的次数,减少类模块的使用,减少模块的使用,减少我们语句中的激活的次数,或者寻找更优质效率更高的代码。
以上就是自己在学习VBA的时候,自己的一点点优化代码的一点点方法,可能还有其他的更好的优化只能慢慢去了解去学习,慢慢积累。虽然Excel VBA并不万能的,但是能帮助我们提高工作效率,就已经足够让你我欣慰。与君共勉之!
PS:学习的苦难需要我们主动面对,生活的苦难你躺着它自己主动就过来啦!与君共勉!!!
以上就是今天要和大家分享的技巧,希望对大家有所帮助,祝各位一天好心情!
唯有不断学习,才能不被淘汰!
Excel中每一个方法都有特定的用途,不是他们没有用处,只是你不了解或者暂时用不着,建议你收藏起来,万一哪天用着呢?
- ?
EXCEL用VBA代替VLOOKUP函数,速度更快更通用
霍曼安
展开
VLOOKUP函数是一个纵向查找函数,它是按列查找,最终返回该列所需查询列序所对应的值。
用VLOOKUP函数来查找很方便,不过它的缺点很明显:
1、速度慢,特别是在数据量大的情况下。
2、每个单元格你都要维护好公式,如果对应不到会出现#N/A,不是很美观,当然你可以用别的公式来消除,不过这又增加了公式的复杂度。
用VBA代替VLOOKUP函数,不仅速度快,而且把它单独做成模版,下次有类似对应操作的需求时,可以直接复制粘贴进去来使用,不用再维护调整公式数量了,通用性强。
举个例子:把表1学号信息填到表2学号里面
VBA代替VLOOKUP函数
方法一、最笨的方法就是按照姓名筛选手工填或者CTRL+F批量替代,数据量大了根本不好使。
方法二、在表2学号列填写VLOOKUP函数,比如G2=VLOOKUP(F2,A1:B4,2,FALSE), G3=VLOOKUP(F3,A1:B4,2,FALSE),以此类推。
方法三、用VBA代码,按ALT+F11进入工程界面,输入右侧代码,运行就可以了。
下次遇到类似的需求只要把相应的数据复制粘贴到表1和表2,运行一下就可以了。
附上截图代码
Sub 引用()
Dim i%, r%
Dim arr1, arr2
arr1 = Sheets("sheet1").[a1].CurrentRegion '表1数据赋值给数组arr1
arr2 = Sheets("sheet1").[f1].CurrentRegion '表2数据赋值给数组arr2
r = 1
For r = 1 To UBound(arr2) '可以看成表2的行数
For i = 1 To UBound(arr1) '可以看成表1的行数
If arr2(r, 1) = arr1(i, 1) Then '可以看成如果表1和表2各自的第1列数据有一样的
arr2(r, 2) = arr1(i, 2) '那么把表1对应的第2列数据赋值给表2的第2列数据
Exit For '结束循环遍历
End If
Next
Sheets("sheet1").[f1].Resize(UBound(arr2), 2) = arr2 '把更新后的数组arr2复制到表2
End Sub
- ?
Excel VBA输出msgbox函数,这个输出函数你知道多少
连天菱
展开
大家好,前面示例中涉及过输出msgbox函数,使用最简单的形式,本节就将这个函数的内容扩充一下,学习其完整的结构,内容重在理解。
一、msgbox 基础语法
msgbox有语句和函数两种格式如下,其中[ ]中的内容可以省略。
语句格式:MsgBox(prompt[, buttons] [, title] [, helpfile, context])
函数格式:变量=MsgBox(prompt[, buttons] [, title] [, helpfile, context])
其中的参数除buttons外均与inputbox函数相同。
prompt是对话框消息出现的字符串表达式,title为对话框标题栏中字符串,buttons参数后面会具体说明。helpfile,context是与帮助文件相关基本省略。
首先说明一下语句和函数两种形式的区别,msgbox语句形式,仅显示内容,点击确定不会产生其他结果。
那么增加变量i,将上面的示例改成函数格式看下结果。
同样一个msgbox语句,点击确定按钮后,函数格式返回了一个数值1。这个变量返回值1就提供了可以和程序交互的可能。
如果可以有几个不同的按钮可以选择,然后返回不同的值就更实用了?不同值可以用来作判断条件。如下图所示:
通过更改了一个buttons的参数值35,改变了对话框的样式(下面会具体说明。)可以看到点击三个按钮后,变量i得到的返回值不同,根据不同返回值来作条件编写适用的判断结构代码,就可以实现简单的交互。
那么现在摆在我们面前的就是两个问题:一如何调整buttons参数来显示不同的对话框?二、点击不同的按钮的具体返回值汇总。以下内容重在理解,理解后就很简单。
一、buttons 参数
buttons参数是用来指定显示按钮的数量及形式,提示图标样式、默认按钮、消息框的强制相应等四方面内容的。
所以它实际可以由四组数值(或常数)组成的。当然四组数值并不是都必须的,根据需求选择即可。先分别来看四组值和对应的内容,再看如何使用。
第一组(0~5)决定对话库中按钮的类型和数量。
第二组(16,32,48,64)决定对话框中显示的图标。
第三组(0,256,512,768)绝对对话框中默认的活动按钮。活动按钮中的文字会有显示虚线。
第四组(0,4096)决定消息框的强制响应性,不太常用。
buttons参数对两种表示方法,第一种容易理解的是使用常量,可以看到常量名字就提示了显示内容。在写第二参数时,系统也会自动提示常量内容。从四组常量中选择需要的常量用+号连接,如下图示例:
常量通常从前三组中选择,只选择第一组也是没有问题,根据需求选择即可。用常量的好处时,显示内容一目了然,写常量时,VBA程序也会提示。
第二种简洁的显示方式。就是选择的常量对应值的加和。比如示例中的vbyesnocancel和vbquestion对应的值分别是3和32。那么累加的和35就是buttons参数。(程序对值的设计保证不会有重复。)
这种方式很简洁,但缺点时需要知道不同显示样式对应的值,同时改代码时也涉及计算也不便修改,所以可以根据自己喜好来选择把。
二、msgbox 函数返回值
点击msgbox函数对话框的按钮,msgbox函数会有不同的返回值,通过变量可以获得返回值,作为不同的判定条件,供我们设计人机交互,下面汇总一下。
内容不需要特别记忆,可以查看帮助,或者直接在程序中写小段代码用debug.print来显示变量返回参数即可。
本节主要介绍了msgbox函数的使用方法,重点是buttons参数两种表示方法和msgbox函数的返回值,重在理解,需要时按规则套用即可,祝大家学习快乐。
- ?
Excel VBA之自定义函数Function
仇高烽
展开
=============================================================
====================
|| 版本号:Excel2013. ||
VBA有两个基本过程,一个是Sub过程,一个是Function过程。
其中Function过程就是自定义函数,本篇就来介绍它
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
自定义函数的基本语法
Function也是保存在模块中
如下:
注:(1)带[]号的都是可选内容。第一行最后的As语句表示指定函数返回的数据类型。
(2)如果想强制退出函数过程,则在需要位置加上语句 Exit Function
(3)最后必须把过程计算的结果返回给函数名称。
(4)使用自定义的Function与使用Excel已有的函数是一样的。但是要注意,私有的函数是
不会出现在“插入函数”对话框里的。
举一个例子,计算特定单元格区域背景颜色为黄色的单元格数目,该函数如下:
注意:这个函数需要你传入所要计算的单元格区域
设定自定义函数为易失性函数
有时当工作表重新计算时,自定义的函数并不会重新计算。此时我们要手工将自定义的Function
设定为易失性函数就可以了。设定也很简单,值需要在函数开始的第一句写上如下代码即可:
注意:当表格改变时,易失性函数也会重新计算。但是想单元格背景色的改变不会导致表格重新计算,
因此易失性函数也不会重新计算。
excel vba 函数
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并