常用函数

您所在的位置:网站首页 vba字符串查找函数 常用函数

常用函数

2023-04-10 18:05| 来源: 网络整理| 查看: 265

函数是一个自我包含的完成一定相关功能的执行代码段,就是将要实现的功能进行模块化,它是实现某种功能的算法集合,有助于程序的可重用性。除了EXCEL前端提供的大量函数外,EXCEL VBA也提供了一些便于后台编程的函数,包括字符串、日期、判断等类别的函数。

一、常用函数列表

1、VBA字符串函数

字符串处理是程序设计中最常见的操作,掌握对字符串的处理也是开始学习一种编程语言的开始。VBA提供了两类字符串,即定长和变长字符串。定长字符串声明如下:

【代码】

Dim str As String * 10

此时,字符串str占用10个字符的内存位置,只能保留10个字符。

变长字符串声明如下:

【代码】

Dim str As String

这样,字符串str可以保存任意长度字符,字符串长度为为其保存字符的实际数量。

常用字符串列表如下:

函数备注Trim(string)去掉string左右两端空白Ltrim(string)去掉string左端空白Rtrim(string)去掉string右端空白Len(string)计算string长度Left(string, x)取string左段x个字符组成的字符串Right(string, x)取string右段x个字符组成的字符串Mid(string, start,x)取string从start位开始的x个字符组成的字符串Ucase(string)转换为大写Lcase(string)转换为小写Space(x)返回x个空白的字符串Asc(string)返回一个integer,代表字符串中首字母的字符(ASCII)代码Chr(charcode)返回string,将字符代码(ASCII码)转换为字符InStr([start,] string1, string2, [comp])在字符串string1中查找字符串string2的位置InStr(string1, string2, [start,] [comp])在字符串string1中反向查找字符串string2的位置String(x, string)生成指定长度x个重复字符串StrConv(string, conv)字符串大小写转换和首字母转为大写(conv=1:大小;conv=2:小写;conv=3:首字母大写)StrComp(string1, string2, [comp])对两个字符串按指定方式进行比较(comp=0:二进制、comp=1:原文;返回值为-1:小于、0:等于、1:大于)Replace(string, string1, string2, [start,] [len,] [comp,])在字符串string中的string1替换位string2(start:开始位置;len:替换字符数;comp:替换方式)

注:函数中方括号“[]”中的参数可选

2、VBA日期和时间函数

函数备注Now()返回计算机系统设置的日期和时间Date()返回当前系统日期Time()返回前系统时间Timer()返回一个Single数字,代表从午夜开始到现在经过的秒数TimeSerial(hour, minute, second)返回一个包含具有具体时、分、秒的时间DateDiff(comp, date1, date1)返回表示两个指定日期间的时间间隔数目(间隔参数comp=yyyy:年、comp=q:季、comp=m:月、comp=d:日、comp=w:周、comp=h:时、comp=n:分钟、comp=s:秒)Second(time)返回时间的秒数Minute(time)返回时间的分钟数Hour(time)返回时间的小时数Day(date)返回日期变量的日期Month(date)返回日期变量的月份Year(date)返回日期变量的年份Weekday(date, [firstdayofweek])返回某个日期是星期几(若设firstdayofweek=vbMonday,每周第一天为星期一)

3、VBA数学函数

函数备注Abs(x)返回x绝对值Int(x)对x取整Sgn(x)根据x的值返回-1(x小于零)、0(x等于零)、1(x大于零)Fix(x)返回x的整数部分Hex(x)返回x的16进制字符Oct(x)返回x的8进制数值Round(x, d)按指定位数d四舍五入数值xRnd([integer])返回(0,10)随机数Sqr(x)返回x平方根Exp(x)返回自然数e的x幂Log(x)返回以自然数e为底x的对数Sin(r)正弦函数Cos(r)余弦函数Tan(r)正切函数Atn(r)反正切函数

注:三角函数的参数r为弧度

4、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

5、VBA信息函数

函数备注IsArray(var)判断变量var是否为数组IsDate(var)判断变量var是否为日期型IsEmpty(var)判断变量var是否初始化IsError(var)判断表达式是否出错IsMissing(var)判断(函数)参数是否传递给过程(调用函数时是否引用了某个参数)IsNull(var)是否不包含有效数据(Null)IsNumeric(var)判断变量var是否是数值型IsObject(var)判断变量var是否是对象型TypeName(var)返回变量名称varType(var)返回变量类型系统定义值(如5 - double)二、常用函数运用实例

1、字符串样例代码 [返回]

【代码】

Dim str As String Dim str1 As String Dim str2 As String str = "lei wang" str1 = "KEI WANG" MsgBox "Len = " & Len(str) '显示为8 MsgBox "Left = " & Left(str, 3) '显示为lei MsgBox "Right = " & Right(str, 4) '显示为wang MsgBox "Mid = " & Mid(str, 5, 4) '显示为wang MsgBox "UCase = " & UCase(str) '转为大写,显示为KEI WANG MsgBox "LCase = " & LCase(str1) '转为小写,显示为lei wang MsgBox "Asc = " & Asc("A") '显示为ASCII码65 MsgBox "Chr = " & Chr(65) '显示为字符A str2 = "Hello excel 2007 VBA" MsgBox "InStr = " & InStr(str2, "e") '显示为位置2 MsgBox "InStr = " & InStr(3, str2, "e") '显示为位置7 MsgBox "InStrRev = " & InStrRev(str2, "e") '显示为位置10 MsgBox "InStrRev = " & InStrRev(str2, "e", 8) '显示为位置7 str1 = "ABCD" str2 = "abcd" MsgBox "StrComp = " & StrComp(str1, str2, 1) '显示为0 MsgBox "StrComp = " & StrComp(str1, str2, 0) '显示为-1 MsgBox "StrComp = " & StrComp(str1, str2) '显示为-1 str = "lei wang" str1 = "KEI WANG" MsgBox "StrConv = " & StrConv(str1, 1) '显示为lei wang MsgBox "StrConv = " & StrConv(str, 2) '显示为KEI WANG MsgBox "StrConv = " & StrConv(str, 3) '显示为Lei Wang MsgBox Replace(str2, "e", "E") '显示为HEllo ExcEl 2007 VBA MsgBox Replace(str2, "e", "E", 8, 5) '显示为xEel 2007 VBA

2、日期和时间函数样例代码

【代码】

MsgBox Now() '显示日期和时间(yyyy-mm-dd hh-mm-ss) MsgBox Date '显示日期(yyyy-mm-dd) MsgBox Time() '显示时间(yyyy-mm-dd hh-mm-ss) MsgBox Timer() MsgBox TimeSerial(15, 1, 10) MsgBox DateDiff("w", "2018-10-09", Now()) MsgBox Second(Time()) MsgBox Minute(Time()) MsgBox Hour(Time()) MsgBox Day(Date) MsgBox Month(Date) MsgBox Year(Date) MsgBox Weekday(Date, vbMonday)

3、数学函数样例代码

【代码】

Dim x As Double x = 4 * Atn(1) '计算圆周率 MsgBox Application.WorksheetFunction.Pi() MsgBox Sgn(12) '返回1 MsgBox Hex(12) MsgBox Oct(12) MsgBox Round(12.37, 1) '返回12.4 MsgBox Rnd(2) MsgBox exp(1.2) MsgBox Log(exp(1)) '返回1 MsgBox Sin(x / 2) '返回1

4、Like运算符使用方法

可以使用Like运算符来比较两个字符串,其语法格式如下:

语法: result = string Like pattern string: 字符串表达式 pattern:字符串表达式,可用通配符、字符表和字符范围

匹配模式pattern如下表:

pattern中的字符匹配string中的字符?任何单一字符*零个或多个字符#任何一个数字(0∼∼∼∼9)[charlist]charlist中的任何单一字符[!charlist]不在charlist中的任何单一字符

样例代码:

【代码】

Dim str As String str = "Application.RandBetween2345" MsgBox "aBBBa" Like "a*a" '显示True MsgBox "RandBetween" Like "*e?n" '显示True MsgBox 123 Like "??#" '显示True MsgBox "A" Like "[a-z]" '显示False MsgBox "A" Like "[A-A]" '显示True MsgBox "A" Like "[!A-A]" '显示False MsgBox "" Like "[]" '显示True MsgBox " " Like "[]" '显示False

5、Format函数使用方法

Excel VBA中Format函数的用法是根据格式表达式中的指令来格式化,其语法格式如下:

语法: Format(expression, [format,] [firstdayofweek,] [firstweekofyear]) expression:必要参数,任何有效的表达式 format:可选参数,有效的命名表达式或用户自定义格式表达式 firstdayofweek:可选参数,常数,表示一星期的第一天。 firstweekofyear:可选参数,常数,表示一年的第一周。

firstdayofweek参数设置如下表:

VBA参数取值备注VbSunday1星期日(缺省)vbMonday2星期一vbTuesday3星期二vbWednesday4星期三vbThursday5星期四vbFriday6星期五vbSaturday7星期六

firstweekofyear参数有下面设置:

VBA参数取值备注vbFirstJan1从包含一月一日的那一周开始(缺省)vbFirstFourDays2从本年第一周开始,而此周至少有四天在本年中VbFirstFullWeek3从本年第一周开始,而此周完全在本年中

样例代码:

【代码】

Dim MyTime, MyDate, MyStr MyTime = #5:04:23 PM# MyDate = #1/27/1993# '以系统设置的长时间格式返回当前系统时间 MyStr = Format(Time, "Long Time") '以系统设置的长日期格式返回当前系统日期 MyStr = Format(Date, "Long Date") MyStr = Format(MyTime, "h:m:s") '返回 "17:4:23" MyStr = Format(MyTime, "hh:mm:ss AMPM") '返回 "05:04:23 PM" MyStr = Format(MyDate, "dddd, mmm d yyyy") '返回 "Wednesday, Jan 27 1993" '如果没有指定格式,则返回字符串。 MyStr = Format(23) '返回 "23" '用户自定义的格式。 MyStr = Format(5459.4, "##,##0。00") '返回 "5,459.40" MyStr = Format(334.9, "###0.00") '返回 "334.90" MyStr = Format(5, "0.00%") '返回 "500.00%" MyStr = Format("HELLO", "") '返回 "THIS IS IT"

VBA可以通过Application对象等调用一些EXCEL前台函数,但在数据量较大时会降低数据数理速度,使用VBA函数数理数组数据会大大提高数据处理效率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3