打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
excel 函数汇总

本教程参考网络诸多大神的灵感,如有侵权,请联系删除

VBA 信息函数

IS类函数isBlank(value)

isErr(value)

isError(value)

isLogical(value)

isNa(value)

isNontex(value)

isNumber(value)

isRef(value)

isText(value)

isStr(value)

value是需要检验的参数。分别为空白单元格、错误值、逻辑值、文本、数字、引用值

如果函数中的参数为下面的内容,则返回TRUE

ISBLANK的参数是空白单元格ISERR的参数是任意错误值(除去#N/A),ISERROR的参数是任意错误值(#N/A、#value!、#REF!、#DIV/0!、#NUM!、#NAME?或#NULL!),ISLOGICAL的参数是逻辑值ISNA的参数是错误值#N/AISNONTEXT的参数是任意不是文本的内容(此函数在值为空白单元格时返回TRUE),ISNUMBER的参数是数字ISREF的参数是引用ISTEXT的参数是文本ISSTR的参数是字符串

VBA 转换函数CBool(expression)           '转换为Boolean型

CByte(expression)           '转换为Byte型

CCur(expression)            '转换为Currency型

CDate(expression)          '转换为Date型

CDbl(expression)            '转换为Double型

CDec(expression)           '转换为Decemal型

CInt(expression)             '转换为Integer型

CLng(expression)            '转换为Long型

CSng(expression)            '转换为Single型

CStr(expression)             '转换为String型

CVar(expression)            '转换为Variant型

Val(string)                       '转换为数据型

Str(number)                    '转换为String

VBA 编码函数

AscMyNumber = Asc('A')   ' 返回 65

MyNumber = Asc('a')    ' 返回 97

MyNumber = Asc('Apple')   ' 返回 65

用来判断大小写!!!

Chr Chr(charcode)

'其中参数charcode代表字符码,一般为0~255。例如:

MyChar = Chr(65)  ' 返回 A

MyChar = Chr(97)   ' 返回 a

MyChar = Chr(62)  ' 返回 >

MyChar = Chr(37)  ' 返回 %

0   Null   '相当于vbNullChar常数

8   BS      '相当于vbBack常数

9   TAB    '相当于vbTab常数

10   CR    '相当于vbCr和vbCrLf常数

13   LF     '相当于vbLf和vbCrLf常数

34   “”      '引号

VBA 格式化函数

FormatFormat(expression[, format[, firstdayofweek[, firstweekofyear]]])

参数expression必须,为任何有效的表达式;其余参数均可选。参数format表示所要采用的格式,参数firstdayofweek使用常数,表示一星期的第一天,参数firstweekofyear使用常数,表示一年的第一周。在参数format中,使用字符@,表示空格或字符占位符,如果在输入的字符串相应位置有字符,则显示该字符,否则显示空格;使用字符&,表示或字符占位符,如果在输入的字符串的相应位置有字符,则显示该字符,否则不显示;使用字符<,则将所有字符显示为小写格式;使用字符>,则将所有字符显示为大写格式;使用字符!,强制占位符从左向右填满, 满足默认为从右向左strOut = Format('8888888', '(@@@)&&&-&&&&') '返回(   )888-8888

strOut = Format('8888888', '(&&&)&&&-&&&&') '返回()888-8888

strOut = Format('Hello', '>@@@@@') ‘返回HELLO

Format函数中,还可以同时格式化普通字符串和空字符串,只须在指定的格式中用分号隔开两个部分,第一部分用于非空字符串,第二部分用于空字符串。例如:strOut = Format('6666666', '(@@@)&&&-&&&&;No Phone') '返回( )666-6666

strOut = Format('', '(@@@)&&&-&&&&;No Phone') '返回No Phone

文本函数

VBA 查找字符串

InStrInStr([Start, ]string1, string2[, compare])

参数Start为可选参数,设置查找的起点,如果省略,则从第一个字符的位置开始查找,当指定了参数Compare时,则要指定此参数。参数string1为被查找的字符串,参数string2为要查找的字符串,这两个参数都是必需的。如果在String1中没有找到String2,返回0;如果找到String2,则返回String2第一个出现的首字符位置(即1到String1的长度);如果String2的长度为零,返回Start

InStrRevInStrRev(String1, String2[, [Start[, compare])

InStrRev函数返回一个字符串在另一个字符串中出现的位置,与InStr函数不同的是,从字符串的末尾算起。

注意参数位置。

大小写转换函数

工作表函数

Lower

将指定对象所有英文字母转换为小写

Upper

将指定对象所有英文字母转换为大写

Proper

将指定对象所有英文首字母大写Sub 大小写转换()

   Dim str As String

   str = '把学的写出来 author: mr ww'

   Debug.Print Excel.Application.WorksheetFunction.Lower(str)'把学的写出来 author: mr ww'

   Debug.Print Excel.Application.WorksheetFunction.Upper(str)'把学的写出来 AUTHOR: MR WW'

   Debug.Print Excel.Application.WorksheetFunction.Proper(str)'把学的写出来 Author: Mr Ww'

End Sub

VBA 函数Debug.Print Ucase('把学的写出来 author: mr ww')

Debug.Print Lcase('把学的写出来 author: mr ww')

查找

Find

查找指定字符串在某一对象中的位置,可以设置起始查找位置。Find(指定查找字符, 查找对象, [起始查找位置])

Search

查找指定字符串在某一对象中的位置,可以设置起始查找位置。Search(指定查找字符, 查找对象, [起始查找位置])Sub 查找()

   Dim str As String

   str = '把学的写出来 author: mr ww Ww'

   Debug.Print Excel.Application.WorksheetFunction.Find('Ww', str, 1)'21

   Debug.Print Excel.Application.WorksheetFunction.Search('Ww', str, 1)'19

End Sub

注意:find()函数区分大小写,search()函数不区分大小写。

LookUplookup(查找对象, 查找对象所在的列(单列哟), 目标值所在的列)

这个工具使用之前,要对查找对象所在的列升序排序,当查找值在查找区域中找不到目标值的时候,就会返回该区域中的最大值

尽量不要用,比较鸡肋。

VlookUpvlookup(查找对象列, 目标区域(可多列哟), 目标区域所在列的自然序号, 精确/模糊匹配)

注意:查找对象一定要位于目标区域 第一列,然后依次往后数就好了。

两者在参数上面设置的不同要特别引起关注。

matchmatch(查找值, 查找值所在区域(可多列哟), [精确/模糊])'返回特定值在特定数组当中的相对位置

indexindex(区域, 行, 列)'在特定的区域,取出特定行、列交叉的值,类似二维数组

替换

ReptRept(指定对象, 重复次数)

将指定对象,重复指定次数

String(number,character),该函数返回重复的字符或字符串,用法同上。

ReplaceReplace(指定对象, 开始位置, 指定长度, 替换内容)

将指定对象中指定位置和长度的内容进行替换。Sub 替换()

   Dim str As String

   str = '把学的写出来 author: mr ww'

   Debug.Print Excel.Application.WorksheetFunction.Replace(str, 8, 6, '作者')

'把学的写出来 作者: mr ww

   Debug.Print Excel.Application.WorksheetFunction.Rept('ww_', 4)

'ww_ww_ww_ww_

End Sub

SubstituteSubstitute(指定对象, 要替换的内容, 替换后的内容, [从第几个*要替换的*内容开始替换])

在指定的对象中指定对象进行替换,

这个函数的最后一个参数表示,如果一个文本中有几个重复的内容,最后一个参数可以指定,从第几个重复内容开始起,进行替换。默认全部替换

提取字符串函数

LeftLeft(String,CharNum)

Left函数可以从字符串的左边开始提取字符或指定长度的字符串,即返回包含字符串中从左边算起指定数量的字符。

其中,如果参数String包含Null,则返回Null;如果参数CharNum的值大于或等于String的字符数,则返回整个字符串。

RightRight(String,CharNum)

Right函数从字符串的右边开始提取字符或指定长度的字符串,即返回包含字符串中从右边起指定数量的字符。

其中,如果参数String包含Null,则返回Null;如果参数CharNum的值大于或等于String的字符数,则返回整个字符串。

MidMid(String,Start[,Len])

Mid函数可以从字符串中提取任何指定的子字符串,返回包含字符串中指定数量字符的字符串。

其中,如果参数String包含Null,则返回Null;如果参数Start超过了String的字符数,则返回零长度字符串('');如果参数Len省略或超过了文本的字符数,则返回字符串从Start到最后的所有字符。Sub 把学的写出来()

   Dim str, LeftStr, RightStr, MidStr As String

   str = '把学的写出来'

   LeftStr = Left(str, 2)      

   RightStr = Right(str, 2)    

   MidStr = Mid(str, 2, 3)        

   Debug.Print Len(str)'6 => len返回字符串元素个数,注意与`lenb`区分

   Debug.Print LeftStr'把学

   Debug.Print RightStr'出来

   Debug.Print MidStr'学的写

End Sub

SplitSplit(expression[,delimiter[,limit[,compare]]])

Split函数返回一个下标从零开始的一维数组,包含指定数目的子字符串。

其中,参数expression必需,表示包含子字符串和分隔符的字符串,若expression是一个长度为零的字符串(''),该函数则返回一个没有元素和数据的空数组;参数delimiter用于标识子字符串边界的字符串字符,若忽略则使用空格(' ')作为分隔符,若是一个长度为零的字符串则返回仅包含一个元素的数组,该元素是expression所表示的字符串;参数limit表示要返回的子字符串数,-1表示返回所有的子字符串;参数compare表示判别子字符串时使用的比较方式。Sub split()

   Dim str As String

str = '把,学,的,写,出,来'

   splitStr = VBA.split(str, delimiter:=',')

   For Each sstr In splitStr    

       Debug.Print sstr      

   Next

End Sub

'输出:

连接字符串

JoinJoin(sourcearray[,delimiter])

Join函数返回连接某数组中的多个子字符串而组成的字符串,即将数组中的字符串连接起来。Sub 连接字符串()

   Dim arr(5)

   arr(0) = '1'            'Number as String

   arr(1) = 'VBScript'     'String

   arr(2) = 100            'Number

   arr(3) = 2.45           'Decimal Number

   arr(4) = #10/7/2013#    'Date

   arr(5) = #12:45:00 PM#  'Time

   Debug.Print Join(arr, '_')

'1_VBScript_100_2.45_VBScript_100_2.45_2013/10/7_12:45:00

End Sub

Sub 连接字符串()

   Dim arr(5)

   arr(0) = '1'            'Number as String

   arr(1) = 'VBScript'     'String

   arr(2) = 100            'Number

   arr(3) = 2.45           'Decimal Number

   arr(4) = #10/7/2013#    'Date

   arr(5) = #12:45:00 PM#  'Time

   Dim arr2()

   arr2 = Array('把学的写出来', '作者', 'ww', '敬上')

   For Each a In arr

       Debug.Print a

   Next

   Debug.Print Join(arr2, '_')

End Sub

删除空格

LTrim

LTrim函数删除字符串前面的空格;

RTrim

RTrim函数删除字符串后面的空格;

Trim

Trim函数删除两头的空格。Sub 把学的写出来()

   Dim str, LeftTriming, RightTriming, Triming As String

   str = ' 把学的写出来 '

   LeftTriming = LTrim(str) ''把学的写出来 '

   RightTriming = Right(str)'' 把学的写出来'

   Triming = Trim(str)''把学的写出来'

End Subs2 = s1.TrimStart   'Removes the spaces at the start.  

s2 = s1.TrimEnd     'Removes the white spaces at the end.

数值函数

绝对值函数

Absabs()'取绝对值

四舍五入

Roundround(数字, 保留小数位数)'四舍五入

RoundUproundup(数字,保留小数位数)'只入

RoundDownrounddown(数字,保留小数位数)'只舍

Eveneven(数字) '入到最近的偶数

Oddodd(数字) '入到最近的整数

Intint(数字)'地板取整,向下取整

数据截取

Trunctrunc(数字, 保留小数点位数)'截取小数,可以将小数部分全部截取

数据幂次方

Powerpower(数字, 幂次方)'返回幂次方

^同上

多数乘积

Productproduct(数字1, 数字2, ...)'返回一串数字的乘积

SumProductsumproduct(区域1, 区域2, ...)'返回多列区域乘积

Modmod(被除数, 除数)'取余

随机数

Randrand()'返回随机数

RandBetweenrandbetween(开始, 结束)'返回指定区间内的随机*整数*

计数函数

count家族函数

countcount(区域)'统计该区域数字单元格个数

countAcountA(区域)'统计该区域非空单元格个数

countIfcountif(区域, 要满足的条件)'返回该区域满足条件的单元格个数

countIfscountifs(区域, 要满足的条件, 要满足的条件, ...)'返回该区域满足条件的单元格个数

countBlankcountblank(区域)'统计该区域空单元格个数

有一个函数非常牛逼,subtotal,类似pandas库中的apply函数,可以自行组合搭配使用,最牛逼的功能,个人感觉。

最大/小值/平均值/中位数

这些小学知识,不再赘述。

时间函数

时间函数无非就是,以及其中的组合搭配而已。

todaytoday()'返回当天日期

nownow()'返回系统时间

day

month

yearday/month/year(日期)'返回年、月、日

常与today()format( , 'yyyymmdd')搭配使用。

日期差函数

daysdays(结束日期, 开始日期)'日期之间天数

datadifdatadif(开始时间, 结束时间, '[y[[/m]/d]')'返回日期差,以年、月、日算

edateedate(指定日期, 前/后月份)'前进1月或后退1月,返回指定日期,前/后月份的日期

如果日期是2020/03/29时,使用这个函数往前退一个月怎么办?

eomontheomonth(指定日期, 前/后月份)'返回指定日期前/后月份最后一天

weekdayweekday(日期, [自己看吧,太多了])'返回星期几的函数

注意:

excel单元格中,数字日期都是靠着单元格右侧文本都是靠着单元格左侧

所有函数实例笔者已编写实例验证

参考文档

CSDN    >>>  http://club.excelhome.net/thread-903036-1-1.html

博   客    >>>  https://blog.csdn.net/nj198624/article/details/8160404

对未来真正的慷慨,是把一切献给现在。

上一篇:VBA 高级进阶

下一篇:联合excel与outlook,自动发送邮件

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
php将指定字符串替换的方法
PHP实现中文汉字与16进制编码转换
C# string 中的 @
Concat_Join_Split_Insert_PadLeft_PadRigt_Remove
Linux下VIM编译器的使用以及shell编程基础
PHP去除字符串开头或末尾逗号
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服