VBA函数大全自己的
- 格式:docx
- 大小:122.95 KB
- 文档页数:20
VBA 中的常用函数介绍VBA(Visual Basic for Applications)是一种基于微软的Visual Basic编程语言,通常用于编写和自动化执行Microsoft Office应用程序中的宏。
VBA具有丰富的内置函数库,这些函数可以帮助开发人员简化代码并提高效率。
在本篇文章中,我们将介绍一些VBA中常用的函数,以帮助您更好地理解和应用VBA编程。
1. Len函数Len函数用于获取字符串的长度。
对于一个字符串变量或字符串常量,Len函数将返回该字符串中字符的数量。
例如,Len("hello")将返回数字5,因为字符串"hello"具有5个字符。
Len 函数的语法如下:Len(string)其中,string是要获取长度的字符串。
下面是一个使用Len函数的示例:Sub LenExample()Dim myString As StringmyString = "Hello, World!"MsgBox "The length of the string is: " & Len(myString)End Sub在上面的示例中,我们定义了一个字符串变量myString,并将其赋值为"Hello, World!"。
然后,我们使用Len函数获取该字符串的长度,并在消息框中显示结果。
2. Left和Right函数Left和Right函数用于提取字符串的左侧和右侧一部分。
Left函数将返回字符串的左侧指定字符数的子串,而Right函数将返回字符串的右侧指定字符数的子串。
这些函数的语法如下:Left(string, length)Right(string, length)其中,string是要提取子串的字符串,length是要返回的字符数。
下面是一个使用Left函数和Right函数的示例:Sub LeftRightExample()Dim myString As StringmyString = "Hello, World!"MsgBox "The left part of the string is: " & Left(myString, 5)MsgBox "The right part of the string is: " & Right(myString, 6) End Sub在上面的示例中,我们使用Left函数提取了字符串"Hello, World!"的左侧5个字符,并使用Right函数提取了字符串的右侧6个字符。
.、八、-刖言我们平时在工作表单元格的公式中常常使用函数,EGcel自带的常用的函数多达300多个, 功能强大,丰富多彩,但是在 VBA中不能直接应用,必须在函数名前面加上对象,比如:Applicatio n. WorksheetF un ctio n.Sum(arg1,arg2,arg3) 。
而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数, 以供大家学习参考。
第1.1例ASC函数一、题目:要求编写一段代码,运行后得到字符串”EGcel”的首字母和” e”的ASCII值。
二、代码:Sub 示例_1_01()DimmyNum1%,myNum2%myNum仁Asc("EGcel")'返回 69myNum2=Asc("e")' 返回 101[a1]="myNum 1=":[b1]=myNum1[a2]="myNum2=":[b2]=myNum2En dSub三、代码详解1、Sub示例_1_01():宏程序的开始语句。
2、DimmyNum1%,myNum2% :变量 myNum1 和 myNum2 声明为整型变量。
也可以写为DimmyNum1AsInteger 。
Integer变量存储为16位(2个字节)的数值形式,其范围为-32,768到32,767之间。
Integer的类型声明字符是百分比符号(%)。
3、myNum1=Asc("EGcel"):把 Asc 函数的值赋给变量 myNum1 。
Asc函数返回一个Integer,代表字符串中首字母的字符的 ASCII代码。
语法Asc(stri ng)必要的string (字符串)参数可以是任何有效的字符串表达式。
如果string中没有包含任何字符,则会产生运行时错误。
4、myNum2=Asc("e"):把Asc函数的值赋给变量myNum2。
前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个, 功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如: Application.WorksheetF unction .Sum(argl,arg2,arg3)o而能在VBA中直接应用的函数也有儿十个,下面将逐一详细介绍常用的40个VBA函数, 以供大家学习参考。
第1.1例ASC函数一、题目:要求编写一段代码,运行后得到字符串” Excel”的首字母和” e”的ASCII值。
二、代码:Sub 示例—1_01()Dim myNuml%, myNum2%myNuml 二Asc("Exce门’返回69myNum2 二Asc("e")'返回101[al]二"myNuml二n: [bl] = myNuml[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、S ub示例_1_010:宏程序的开始语句。
2、D im myNuml%, myNum2%:变量myNuml 和myNum2 声明为整型变量。
也可以写为Dim myNuml As Integer <> Integer变量存储为16位(2个字节)的数值形式,其范围为-32,768到32,767之间。
Integer的类型声明字符是白分比符号(%)。
3、m yNuml = Asc("Excel"):把Asc 函数的值赋给变量myNuml»Asc函数返回一个Integer,代表字符串中首字母的字符的ASCD代码。
语法Asc(string)必要的string (字符串)参数可以是任何有效的字符串表达式。
如果string中没有包含任何字符,则会产生运行时错误。
4、m yNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。
vba 自定义函数说明函数定义VBA定义的函数可以在工作表使用,如果是在加载插件中定义函数,本机所有打开工作簿都可以使用该函数,当然可以在过程sub中调用函数;VBA函数与sub过程不同的是,函数有返回内容;过程和函数都可以传入参数。
函数使用Function关键字定义,定义规则如下:Function 函数名称(形参及类型)函数主体函数名称= 函数返回End Function示例:'定义一个数值平方的函数,形参:a,形参a类型:long,函数返回:a ^ 2;函数名称:testFunction test(a as long)test = a ^ 2End Function'定义全局函数,使用public关键字,这个关键字跟变量定义是一致的。
后面跟的as long是返回类型Public Function test(a as long) as longtest = a ^ 2End Function传值和传引用函数或方法传值使用关键字ByVal,传引用使用关键字ByRefSub num_print()Dim i, num As Long ' 定义一个变量num = 0For i = 1 To 10s = add(num) ' 调用add函数sDebug.Print num ' 函数参数是传引用,会依次打印1,2,3,,,,10NextEnd SubFunction add(ByRef a As Variant)a = a + 1End Function如果上述函数参数为传值ByVal,则函数不影响方法num_print中变量num的改变,全打印0;函数返回对象函数也可以返回对象,返回对象要使用set关键字;示例:返回字典Function aa()Dim d As ObjectSet d = CreateObject("scripting.dictionary")today = Datethe_month_date = CDate(Year(Date) & "-" & Month(Date)& "-" & 20) '这个月的20号last_month_date =Application.WorksheetFunction.EDate(the_month_date, -1) '上个月的20号d("today") = todayd("the_month_date") = the_month_dated("last_month_date") = last_month_dated("the_month") = Month(last_month_date) '这个月d("last_month") =Month(Date) '上个月Set aa = d '返回对象使用set关键字End Function'函数调用sub test1()dim d1 as objectset d1 = aa()debug.print d1("today") '打印字典键today对应的值end sub使用默认参数函数传入参数格式:形参 as 参数类型 = 参数默认值示例:正则提取函数Function regexp(rg As Variant, str As String, Optional mat As Byte = 0, Optional group As Variant = Empty)'Optional表示参数不是必需的关键字。
VB常用函数表VB常用函数表(2009-03-20 00:50:42)转载标签:asp常用函数分类:技术文章杂谈ASP纯ASPVBscript常用函数:1.数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根 num>0int(num): 取整 int(99.8)=99; int(-99.2)=100fix(num): 取整 fix(99.8)=99; fix(-99.2)=99round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整round(3.25,1)=3.2log(num): 取以e为底的对数 num>0exp(n): 取e的n次幂通常用 num^nsin(num): 三角函数,以弧度为值计算 (角度*Pai)/180=弧度 con(num); tan(num); atn(num)2.字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符 1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3.数据类型转换函数:Cint(str):转换正数 True -1;False 0;日期距离1899/12/31天数;时间上午段 0;下午段 1;Cstr(str):日期输出格式 yyyy/mm/dd;时间输出格式 Am/Pm hh:mm:ssClng(str):与Cin()类似Cbool(num):num不为零 True;反之 FalseCdate(str):转换日期格式 0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值 Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)DateValue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素Join(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出 Exit Function 中途跳出End Sub StrFunName=Value 返回值End Function[call] StrSubName 引用子程序 Var=StrFunName(arg[1],..) 引用函数子程序和自定义函数可以递归调用;ASP六大对象常用语句示范:Response:Response.write StrVar/"String":向网页写出参数值或字符串等同于在Html标记中嵌入<%=StrVar/"String"%>Response.End:停止页面编译,并将已经编译内容输出到浏览器Response.Buffer=True|False:页面编译时是否使用缓存的设置,一般在页面头部设置Response.Flush:强制输出页面已编译部分内容Response.Clear:将缓冲区内的数据清除Response.Redirect URL:停止页面编译或输出,转载指定所需页面Response.IsClientConnected:返回True|False,检测用户是否还处于连接状态Response.Charset(CharsetName):设置页面编码类型,即<meta http-equiv="Content-Type" content="text/html; charset=gb2312">Response.ContentType [= ContentType ]:设置页面文件类型,同上Response.Expires [= number]:设置页面失效时间,单位分钟Response.ExpiresAbsolute [= [date] [time]]:设置页面失效的绝对时间Response.Status = StatusDescription:设置页面状态描述Request:Request("PassStrName"):读取网页传递值,包括表单及以?PassStrName=value&PassStrName_n=value_n形式Request[.collection|property|method](variable)Request.querystring("PassStrName"):读取Get方法传递的表单值和?PassStrName=valueRequest.QueryString(Varible)[(Index).Count]Request.form("PassStrName"):读取Post方法传递的纯表单域的值Request.Form(Parameter)[(Index).Count]Request.ServerVaribles(Server Environment Variable):读取客户端系统环境变量,详见参考Request.BinaryRead(Count):读取指定字节数的传送值Request.TotalBytes:查询体的长度,以字节为单位,只读注:同名表单如:CheckBox如有多项值,传递形式如右,StrName=value1,value2,...需要用Split函数分割各项值Multiple的Select表单与CheckBox类似,TextArea的值可包含换行字符,用Replace转为<br>,以满足格式需要Session:(用户全局变量)Session("SesName")=value:存储Session变量值,也可读取该值Session("SesName")=Empty:判断Session值是否存在的两种方法IsEmpty(Session("SesName"))=True|False:判断Session值是否存在的两种方法Session.TimeOut=num:设置Session变量的存在时效,单位分钟Session.Abandon:清除所有Session变量值Session.SessionID:Session变量的ID序列号,只读Application:(应用程序全局变量)Application("AppName")=value:存储Application变量值,也可读取该值Application("AppName")=Empty:判断Application值是否存在的两种方法IsEmpty(Application("AppName"))=True|False:判断Application值是否存在的两种方法Application.Lock:Application变量值锁定,防止同时更改变量值Application.UnLock:Application变量值解锁,允许更改变量值注:Session与Application变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名而已,但不能直接改变其值,需要借助临时数组修改值后,再赋给Session与Application变量Global.asa文件的结构:<% @language="VBscript"%><% Sub Application_OnStart ...End SubSub Application_OnEnd ... End SubSub Session_OnStart ...End SubSub Session_OnEnd ... End Sub%>Server:Server.MapPath("FileUrl"):映射文件名的服务器站点绝对地址,Path=Server.MapPath(./)可以得到虚拟目录根路径Server.HtmlEncode("string"):转换为可以直接显示带Html格式的字符串,如:<,>等Server.URLEncode( "string"):转换为浏览器地址编码set Var=Server.CreatObject("ObjName"):创建对象变量Server.ScriptTimeout = NumSeconds:ASP程序页面执行时限,以秒为单位Cookies: 存储在用户本机的临时变量,每个Cookie的最大字节4KB,最多可以有300个Cookie 1.2MBResponse.cookies("StrCookieName")=value:存储Cookie变量值,也可读取该值Response.cookies("StrCookieName")="":判断是否为空Response.cookies("StrCookieName").Expires=Date:变量有效期,以天为单位,小于当前时间立即失效Response.Cookies(Cookie[(key).Attribute]):标准语法ObjectContext 控制ASP的事务处理ObjectContext.OnTransactionAbort:由放弃的事务处理事件激发,在脚本完成处理后发生ObjectContext.OnTransactionCommit:由成功的事务处理事件激发,在脚本完成处理后发生ObjectContext.SetAbort:显式的放弃一次事务处理ObjectContext.SetComplete:覆盖前面任何调用ObjectContext.SetAbort方法的调用Msgbox "string"/StrName:VBscript提示框表单的Onsubmit事件:在同一页面写入 FunctionFormName_onsubmit()..FormName_onsubmit=True/False..end Function,页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。
VBA函数大全(自己整理的) Abs函数返回一个与参数类型相同的绝对值。
Array函数返回一个包含数组的Variant。
Asc函数返回一个整数,代表字符串中首字母的字符代码。
Atn函数返回一个双精度浮点数,指定一个数的反正切值。
CallByName函数执行一个对象的方法,或者设置或返回一个对象的属性。
Choose函数从参数列表中选择并返回一个值。
Chr函数返回一个字符串,其中包含与指定的字符代码相关的字符。
Cos函数返回一个双精度浮点数,指定一个角的余弦值。
___函数创建并返回一个对ActiveX对象的引用。
CurDir函数返回一个代表当前路径的字符串。
CVErr函数返回一个包含指定错误号的Error子类型的Variant。
Date函数返回一个包含系统日期的Variant(Date)。
DateAdd函数返回一个包含指定时间间隔后的日期的Variant(Date)。
DateDiff函数返回一个Variant(Long)的值,表示两个指定日期间的时间间隔数目。
DatePart函数返回一个包含已知日期的指定时间部分的Variant(Integer)。
DateSerial函数返回一个包含指定的年、月、日的Variant(Date)。
DateValue函数返回一个Variant(Date)。
Day函数返回一个表示一个月中某一日的1到31之间的整数。
DDB函数返回一个双精度浮点数,指定一笔资产在一特定期间内的折旧。
Dir函数返回一个符合指定模式、文件属性或磁盘卷标的文件名、目录名或文件夹名称的字符串。
DoEvents函数转让控制权,以便让操作系统处理其他事件。
Environ函数返回一个与操作系统环境变量相关的字符串。
在Macintosh中不可用。
EOF函数返回一个包含布尔值True的整数,表明已经到达为Random或顺序Input打开的文件的结尾。
Error函数返回对应于已知错误号的错误信息。
Exp函数返回一个双精度浮点数,指定e(自然对数的底)的某次方。
VBAExcel常用自定义函数1. 将互换 Excel 列号(数字/字母)Public Function excelColumn_numLetter_interchange(numOrLetter) As String Dim i, j, idx As IntegerDim letterArrayletterArray = Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z')If IsNumeric(numOrLetter) ThenIf numOrLetter > 702 ThenMsgBox '只允许输入小于“703”的数字。
'Exit FunctionEnd IfIf numOrLetter > 26 Thenidx = 26For i = 0 To 25For j = 0 To 25idx = idx + 1If idx = numOrLetter ThenexcelColumn_numLetter_interchange = letterArray(i) & letterArray(j)Exit ForEnd IfNext jNext iElseexcelColumn_numLetter_interchange = letterArray(numOrLetter - 1)End IfElsenumOrLetter = UCase(numOrLetter) '转换为大写If Len(numOrLetter) > 1 And Len(numOrLetter) < 3 Thenidx = 26For i = 0 To 25For j = 0 To 25idx = idx + 1If letterArray(i) & letterArray(j) = numOrLetter ThenexcelColumn_numLetter_interchange = idxExit ForEnd IfNext jNext iElseIf Len(numOrLetter) = 1 ThenFor i = 0 To 25If letterArray(i) = numOrLetter ThenexcelColumn_numLetter_interchange = i + 1Exit ForEnd IfNext iElseMsgBox '最多只允许输入2个“字母”。
VBA常用函数计算, 左右, 字符串1,vba字符串函数列表: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,代表字符串中首字母的字符代码Chr(charcode) 返回string,其中包含有与指定的字符代码相关的字符2,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) 转换为String3,VBA时间函数:Now 返回一个Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。
Date 返回包含系统日期的Variant (Date)。
前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。
而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。
第1.1例 ASC函数一、题目: 要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。
二、代码:Sub 示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 示例_1_01():宏程序的开始语句。
2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。
也可以写为 Dim myNum1 As Integer 。
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。
Integer 的类型声明字符是百分比符号(%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。
Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。
语法Asc(string)必要的 string(字符串)参数可以是任何有效的字符串表达式。
如果 string 中没有包含任何字符,则会产生运行时错误。
4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。
Vba精选函数一、VBA函数精选之一(ASC函数) (2)二、VBA函数精选之二(Chr函数) (4)三、VBA函数精选之三(Choose函数) (5)四、VBA函数精选之四(Cos函数) (6)五、VBA函数精选之五(Date函数) (8)六、VBA函数精选之六(DateAdd函数) (9)七、VBA函数精选之七(DateDiff函数) (10)八、VBA函数精选之八(DatePart函数) (12)九、VBA函数精选之九(DateSerial 函数) (14)十、VBA函数精选之十(DateValue 函数) (15)十一、VBA函数精选之十一(Day函数) (16)十二、VBA函数精选之十二(Dir函数) (17)十三、VBA函数精选之十三(Fix 函数) (19)十四、VBA函数精选之十四(Format 函数) (20)十五、VBA函数精选之十五(Hour 函数) (22)十六、VBA函数精选之十六(IIF 函数) (23)十七、VBA函数精选之十七(InputBox) (24)十八、VBA函数精选之十八(Instr 函数) (27)十九、VBA函数精选之十九(InstrRev) (30)二十、VBA函数精选之二十(IsArray) (32)二十一、VBA函数精选之IsNumeric 函数 (34)二十二、VBA函数精选之(Join 函数) (35)二十三、VBA函数精选之(LBound 函数) (36)二十四、VBA函数精选之LCase和UCase (38)二十五、VBA函数精选之(Left 和Right) (40)二十六、VBA函数精选之(Len 函数) (42)二十七、VBA函数精选之(LTrim、RTrim与Trim 函数) (44)二十八、VBA函数精选之(Mid 函数) (46)二十九、VBA函数精选之(Month 和MonthName 函数) (48)三十、VBA函数精选之(MsgBox 函数) (49)三十一、VBA函数精选之(Now 函数) (55)三十二、VBA函数精选之(RGB 函数) (56)三十三、VBA函数精选之(Rnd 函数) (57)三十四、VBA函数精选之(Round 函数) (59)三十五、VBA函数精选之(Split 函数) (61)三十六、VBA函数精选之(Sqr 函数) (63)三十七、VBA函数精选之Str 和CStr (65)三十八、VBA函数精选之(Time 函数) (68)三十九、VBA函数精选之(TimeSerial 和TimeValue 函数) (69)四十、VBA函数精选之(Timer 函数) (72)选择性粘贴的VBA实现方法(ZT) (73)Excel VBA中ByVal和ByRef有什么区别? (76)一、VBA函数精选之一(ASC函数)我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩。
VBA自定义函数大全目录001.返回 Column 英文字002.查询某一值第 num 次出现的值003.返回当个人工资薪金所得为2000 元(起征点为850元)时的应纳个人所得税税额004.从形如“123545ABCDE”的字符串中取出数字005.从形如“ABCD12455EDF”的字符串中取出数字006.按 SplitType 取得 RangeName 串值中的起始位置007.将金额数字转成中文大写008.计算某种税金009.人民币大、小写转换010.查汉字区位码011.把公元年转为农历012.返回指定列数的列标013.用指定字符替换某字符014.从右边开始查找指定字符在字符串中的位置015.从右边开始查找指定字符在字符串中的位置016.计算工龄017.计算日期差,除去星期六、星期日018.将英文字反转的自定函数019.计算个人所得税020.一个能计算是否有重复单元的函数021.数字金额转中文大写022.将数字转成英文023.人民币大小写转换024.获取区域颜色值025.获取活动工作表名026.获取最后一行行数027.判断是否连接在线028.币种转换029.检验工作表是否有可打印内容030.查找一字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现时的位置,返回零表示没找到031.增加文件路径最后的“\”符号032.计算所得税033.从工作表第一行的标题文字以数字形式返回所在号034.在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和035.返回 Column 英文字036.查找指定列名的列数037.文字格式的时间(分:秒)转化为数字格式(秒)038.将(hh:mm:ss)格式的时分秒数转换成秒数039.金额中文大写转数字040.把角度转为度秒分、弧度等显示041.身份证号码侦测042.显示公式043.方便财务人员理帐查找044.数值转换为字符地址045.字符地址转换为数值046.等待时间(以秒计算)047.得到字符串实际的长度(以单字节记)048.18 位身份证最后一位有效性验证049.计算符合 maturity condition 的拆解金额050.对多个用同一分隔符分隔的待查找元素,逐一在表区域首列内搜索,将返回选定单元格的值相加051.根据个人所得税(工资)反算工资数052.判断表是否存在053.角度转弧054.比较相同的字符串055.对选定的数组进行排序056.取得指定月份天数057.排序工作表活页薄058.统计数组中非重复数据个数059.摘取子字符串060.计算 20000 余个汉字的笔画061.删除当前工作表中的全部超连接062.取得相近数据063.提取定串中汉字064.搜索重复数据(选定范围)065.字符型转数字型066.小写人民币转大写人民币067.取得指定月份人星期天个数068.侦测档案是否包含宏069.获取循环参照单元格070.创建桌面快捷方式071.自动建立多级目录072.统计经筛选后符合条件的记录条数073.复制单元格列高与栏宽074.取消隐藏工作表(包括 vba Project 工程保护的)075.删除单元格自定义名称076.从文件路径中取得文件名077.取得一个文件的扩展名078.取得一个文件的路径079.十进制转二进制080.检查一个数组是否为空081.字母栏名转数字栏名082.数字栏名转文字栏名083.判断一件活页夹中是否还有子目录084.判断一个文件是否在使用中085.列出档案详细摘要信息086.获取菜单 ID 编号及名称列表087.状态列动态显示文字088.取得一个文件的路径2089.取得一个文件的路径3090.取得 Activecell 的栏名091.取得单元格中指定字符前的字符092.前单元格指定字符前的字符颜色改成红色093.根据数字返回对应的字母列号094.取工作表名字095.取消所有隐藏的宏表096.导出 VBA Project 代码097.导入 VBA Project 代码098.取得汉字拼音的第一个字母099.获取两栏中相同的数据100.选取当前工作表中公式出错的单元格,关返回出错个数101.将工作表中最后一列作为页脚打印在每一面页尾102.获取 vbproject 引用项目103.移除 Excel 工作表中的外部数据连接104.将选择定单元格作成镜像图片105.反选择单元格中的数106.在 Excel 中加入一个量度尺(以厘米为单位)107.在 Excel 中加入一个量度尺(以寸为单位)108.取得一个短文件名的长文件名109.取得临时文件名110.等用 Shell 调用的程序执行完成后再执行其它程序111.将 Mouse 显示成动画112.限制 Mouse 移动范围113.取得当前激活窗品句柄及标题114.取得屏幕分辨率115.自动建立多级目录116.将文件长度置零117.读取 WIN9X / Me 共享文件夹密码118.取得预设的打印机及设置预设的打印机119.获得当前操作系统的打印机个数及检测打印是否存在120.枚举打印机名称清单121.读取网络服务器当前时间122.下载文件到指定目录123.自动映射网络驱动器124.自动断开网络驱动器125.连接选定单元格中的内容126.获取一个单元格中有指定字体颜色部份数据127.对指定文件加 XLS 加密128.选择指定范围内使用了填充颜色的单元格129.在特定的区域内查找文本,返回值是包含查找文本的单元格130.返回特定区域中最大值的地址131.删除表格中使用范围内的所有空白单元格132.返回数组中有多少个指定的字符串133.返回当前工作表中引用了指定的单元的地址134.获取 Excel 中字型列表135.获取一个字符串中有多少个数字字符136.在 Excel 中对多列进行填充137.对选定的范围进行数据填充(忽略单元格格式)138.VBA Project 加密及解密139.列出收藏夹中的网址140.计算两个日期之间相隔的年份,比如年龄,工龄等,可计算从1000年01月01日起的日期141.从字符串提取纯数字142.将一个数组按升序排列143.将一个数组按降序排列144.删除空白列145.判断工作表是否为空白146.将数据按类分到不同工作薄147.单元格内数据排序148.对多栏排序149.返回计算公式的值[值的计算公式]150.把第一列=某个值对应的第二列的内容连在一起,并用、隔开151.取得系统使用模式152.计算机注销/关机/重启153.更改计算机名称154.从 n 位开始取出字符串中的汉字、英文字母、数字155.在指定列中寻找含有指定字符串的单元格,并将符合条件的单元格标为红色,并将对应的下一列单元格赋值为1156.清除字符串中的空格157.查找合并单元格位置158.阴阳历转换和阴阳历生日159.利用数组和 Substitute 来替换某字符160.一键创建斜线表头161.函自动获取指定月的工作日。
前言我们平时在工作表xx的公式xx常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBAxx不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。
而能在VBAxx直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。
第1.1例 ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。
二、代码:Sub 示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 示例_1_01():宏程序的开始语句。
2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。
也可以写为 Dim myNum1 As Integer 。
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。
Integer 的类型声明字符是百分比符号 (%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNu1。
Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。
语法Asc(string)必要的 string(字符串)参数可以是任何有效的字符串表达式。
如果 string 中没有包含任何字符,则会产生运行时错误。
4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNu2。
VBA代码全集VBA代码全集一、引用相对引用B4绝对引用$B$4混合引用$B4、B$4F4进行引用切换,$在字母前面则锁定列,在数字前面则锁定行。
二、Worksheet_Change 事件:1.在单元格中C4=VLOOKUP(B4,简码表!$B$4:$C$1000,2,FALSE)2. Worksheet_Change事件代码:Private Sub Worksheet_Change(ByVal Target As Range)On error resume nextIf Target.Row > 3 And Target.Column = 2 Theni = Target.RowCells(i, 3) = Application.WorksheetFunction.VLookup(Cells(i, 2), Sheets("简码表").Range("b4:c100"), 2, False)End IfEnd Sub备查代码:Private Sub Worksheet_Change(ByVal Target As Range)On Error Resume NextIf Target.Row > 3 And Target.Column = 5 Theni = Target.RowCells(i, 6) = Application.WorksheetFunction.VLookup(Cells(i, 5), Sheets("类款项").Range("b2:e2000"), 2, False)Cells(i, 7) = Application.WorksheetFunction.VLookup(Cells(i, 5), Sheets("类款项").Range("b2:e2000"), 3, False)Cells(i, 8) = Application.WorksheetFunction.VLookup(Cells(i, 5), Sheets("类款项").Range("b2:e2000"), 4, False)End IfEnd Sub三、相乘Sub 计算金额()Application.ScreenUpdating = FalseDim i As LongDim irow As Longirow = Range("a3").End(xldown).RowFor i = 4 To irowCells(i, 3) = Cells(i, 1) * Cells(i, 2)Next iApplication.ScreenUpdating = TrueEnd Sub四、相减Sub 相减()Application.ScreenUpdating = FalseRange("c3:c10000").ClearContentsDim i As LongDim irow As Longirow = Range("a5000").End(xlUp).RowFor i = 3 To irowCells(i, 3) = VBA.Round((Cells(i, 1) - Cells(i, 2)), 2) Next iApplication.ScreenUpdating = TrueEnd Sub五、高级筛选(工具-宏-录制新宏,宏名改成高级筛选)Sub 高级筛选()Sheets("业务").Range("A3:I10000").AdvancedFilterAction:=xlFilterCopy, _CopyToRange:=ActiveCell.Range("A1:B1"), Unique:=TrueEnd Sub六、双击事件1.插入-名称-定义(修改名称和引用位置)2.查看代码-插入-用户窗体工具箱-多页、列表框-右键属性点击page1修改caption为资产类-点击空白列表框修改rowsource 为box1依次类推3. 业务表-查看代码 Worksheet beforedoubleclickPrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Target.Row > 3 And Target.Column = 6 Then UserForm1.ShowSheets("初始化").Range("m3") = ActiveCellElseIf Target.Row > 3 And Target.Column = 7 ThenUserForm2.ShowEnd IfEnd Sub备查代码:Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Target.Row > 3 And Target.Column = 6 Then UserForm1.ShowSheets("初始化").Range("c2") = ActiveCellElseIf Target.Row > 3 And Target.Column = 7 ThenUserForm2.ShowSheets("初始化").Range("f2") = ActiveCellElseIf Target.Row > 3 And Target.Column = 8 ThenUserForm3.ShowEnd IfEnd Sub4.右键点击Userform1查看代码 Listbox1 dbclickPrivate Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox1.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox2.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox3.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox4.ListIndex, 0)Unload MeEnd SubPrivate Sub ListBox5_DblClick(ByVal Cancel As MSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 6) = ListBox1.List(ListBox5.ListIndex, 0)Unload MeEnd Sub见上图5.插入用户窗体右键点击userform2 worksheet dblclickPrivate Sub ListBox1_DblClick(ByVal Cancel AsMSForms.ReturnBoolean)ActiveSheet.Cells(ActiveCell.Row, 7) = ListBox1.List(ListBox1.ListIndex, 0)Unload MeEnd SubUserform initializePrivate Sub UserForm_Initialize()Application.ScreenUpdating = FalseWith Sheets("初始化")Sheets("科目表").Range("h2:i10000").AdvancedFilterAction:=xlFilterCopy, _CriteriaRange:=.Range("m2:m3"), CopyToRange:=.Range("n2"), Unique:=TrueEnd WithEnd Sub七.单位汇总(sumif),单条件汇总=SUMIF(业务!$D$4:$D$1000,单位汇总!$A15,业务!I$4:I$10000)Sub 单位汇总1()Application.ScreenUpdating = Falserange("a1:i10000").ClearCells(3, 2) = "指标数"Cells(3, 3) = "拨款数"Cells(3, 4) = "余额"Cells(1, 7) = "单位"Cells(3, 7) = "单位"Cells(3, 8) = "指标数"Cells(3, 9) = "拨款数"Sheets("业务").Range("D3:D10000").AdvancedFilterAction:=xlFilterCopy, _CopyToRange:=Range("A3"), Unique:=TrueSheets("业务").Range("A3:J10000").AdvancedFilterAction:=xlFilterCopy, _CriteriaRange:=Range("G1:G2"), CopyToRange:=Range("G3:I3"), Unique:=False Dim i As LongDim irow As Longirow = Range("a3").End(xlDown).RowFor i = 4 To irowCells(i, 2) = Application.WorksheetFunction.SumIf(Range("g4:g10000"), Cells(i, 1), Range("h4:h10000"))Cells(i, 3) = Application.WorksheetFunction.SumIf(Range("g4:g10000"), Cells(i, 1), Range("i4:i10000"))Cells(i, 4) = VBA.Round(Cells(i, 2) - Cells(i, 3), 2)Next iRange("g1:i10000").ClearApplication.ScreenUpdating = TrueEnd Sub八、多条件汇总(连接、sumif)连接=k4&l4&m4&n4Vba:Sub 多条件汇总()Application.ScreenUpdating = FalseRange("a1:p10000").ClearSheets("业务").Range("D3:G10000").AdvancedFilterAction:=xlFilterCopy, _CopyToRange:=Range("B3:E3"), Unique:=True Sheets("业务").Range("D3:I10000").AdvancedFilterAction:=xlFilterCopy, _CopyToRange:=Range("K3:P3"), Unique:=False Dim j As LongDim jrow As Longjrow = Range("k3").End(xlDown).RowFor j = 4 To jrowCells(j, 10) = Cells(j, 11) & Cells(j, 12) & Cells(j, 13) & Cells(j, 14)Next jDim i As LongDim irow As Longirow = Range("b3").End(xlDown).RowFor i = 4 To irowCells(3, 6) = "指标数"Cells(3, 7) = "拨款数"Cells(3, 8) = "余额"Cells(i, 1) = Cells(i, 2) & Cells(i, 3) & Cells(i, 4) & Cells(i, 5)Cells(i, 6) = Application.WorksheetFunction.SumIf(Range("j4:j10000"), Cells(i, 1), Range("o4:o10000"))Cells(i, 7) = Application.WorksheetFunction.SumIf(Range("j4:j10000"), Cells(i, 1), Range("p4:p10000"))Cells(i, 8) = VBA.Round(Cells(i, 6) - Cells(i, 7), 2)Next iRange("i3:p10000").ClearRange("a1:a10000").Delete Application.ScreenUpdating = True End Sub九、多条件汇总、adoSub 多条件汇总()Application.ScreenUpdating = False Dim i As IntegerDim strsql As StringDim cnn As New ADODB.Connection Dim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类,款,项, sum(指标数) as 预算股指标,sum(拨款数) as 预算股拨款 from[业务$a3:J10000] where 归口='" & Range("h2").Value & "'and 月<=" & Range("i2").Value & " GROUP BY 单位,类,款,项"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("多条件汇总").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("多条件汇总").Range("a4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingEnd Sub 十、对账Sub 预算股()Application.ScreenUpdating = FalseDim i As IntegerDim strsql1 As StringDim cnn1 As New ADODB.ConnectionDim rst1 As New ADODB.Recordsetcnn1.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql1 = " SELECT 单位,类,款,项, sum(指标数) as 预算股指标 from[预算股$a3:m50000] where 归口='" & Range("h2").Value & "'and 月<=" & Range("i2").Value & " GROUP BY 单位,类,款,项" rst1.Open strsql1, cnn1For i = 1 To rst1.Fields.CountSheets("对帐").Cells(3, i + 10) = rst1.Fields(i - 1).NameNext iSheets("对帐").Range("k4").CopyFromRecordset rst1rst1.Closecnn1.CloseSet rst1 = NothingSet cnn1 = NothingDim strsql2 As StringDim cnn2 As New ADODB.ConnectionDim rst2 As New ADODB.Recordsetcnn2.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql2 = " SELECT 单位,类,款,项, sum(指标数) as 专业股指标 from[专业股$a3:j50000] where 归口='" & Range("h2").Value & "'and 月<=" & Range("i2").Value & " GROUP BY 单位,类,款,项"rst2.Open strsql2, cnn2For i = 1 To rst2.Fields.CountSheets("对帐").Cells(3, i + 19) = rst2.Fields(i - 1).NameNext iSheets("对帐").Range("t4").CopyFromRecordset rst2rst2.Closecnn2.CloseSet rst2 = NothingSet cnn2 = Nothings = Application.WorksheetFunction.CountA(Range("k4 :k10000")) + 4Range("T4:W10000").SelectSelection.CopyRange("K" & s).SelectActiveSheet.PasteRange("X4:X10000").SelectSelection.CopyRange("P" & s).SelectActiveSheet.PasteRange("X3").SelectSelection.CopyRange("P3").SelectActiveSheet.PasteDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类,款,项, sum(预算股指标) as 预算股指标 ,sum(专业股指标) as 专业股指标from[对帐$k3:p50000] GROUP BY 单位,类,款,项" rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("对帐").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("对帐").Range("a4").CopyFromRecordsetrstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = True End Sub十一、sql筛选Sub 筛选()Application.ScreenUpdating = False Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT distinct 单位,类,款,项 from[专业$a3:h10000]"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("筛选").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("筛选").Range("a4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd Sub十二、sql连接、交叉汇总Sub 连接()Application.ScreenUpdating = FalseDim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 股,月,归口,单位,类,款,项,指标数 from [专业$a3:h10000] union ALL SELECT 股,月,归口,单位,类,款,项,指标数from [预算$a3:l10000] order by 股 desc"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("连接").Cells(1, i + 19) = rst.Fields(i - 1).NameNext iSheets("连接").Range("t2").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd SubSub 汇总()Application.ScreenUpdating = FalseCall 连接Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " transform sum(指标数) SELECT 单位,类,款,项 from [连接$t1:aa10000] where 归口= '" & Range("h2").Value & "' and 月=" & Range("i2").Value & " group by 单位,类,款,项pivot 股"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("连接").Cells(3, i) = rst.Fields(i - 1).NameNext iSheets("连接").Range("a4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingEnd Sub十三、select语句总结1、筛选(false ---筛选全部)Select 列表名称1,列表名称2,…….列表名称n from [表$区域]或者Select * from [表$区域]2、筛选唯一的数据Select distinct 列表名称1,列表名称2,…….列表名称n from [表$区域]3、分类汇总Select 列表名称1,列表名称2,…….列表名称n,sum(a) as a from [表$区域]Group by列表名称1,列表名称2,…….列表名称n4、条件分类汇总Select 列表名称1,列表名称2,…….列表名称n,sum(a) as a from [表$区域]Where 归口=’”& range(“”).value &”’ and 月=”& range(“”).value &” Group by列表名称1,列表名称2,…….列表名称n5、交叉汇总Transform sum() select 列名称1,……列名称n from[表$区域] group by 列名称1,…..列名称n pivot 交叉事项6、连接Select 列名称1表$区域] unionall Select 列名称1n from[表$区域] order by 列名称 desc十四、报表(有层次)连接Transform sum(指标数),pivot 股按单位、类、款进行汇总按单位、类进行汇总按单位进行汇总连接以上四个表的内容,并按单位、类、款、项进行排序,其中单位按降序排序1、整体写代码Sub 报表()Application.ScreenUpdating = FalseDim i As IntegerDim strsql1 As StringDim cnn1 As New ADODB.ConnectionDim rst1 As New ADODB.Recordsetcnn1.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql1 = " SELECT 股,月,归口,单位,类,款,项,sum(指标数) as 指标数 from[专业$a3:h10000] group by 股,月,归口,单位,类,款,项 union all SELECT 股,月,归口,单位,类,款,项,sum(指标数) as 指标数 from[预算$a3:l10000] group by 股,月,归口,单位,类,款,项 order by 股 desc"rst1.Open strsql1, cnn1For i = 1 To rst1.Fields.CountSheets("报表").Cells(3, i + 9) = rst1.Fields(i - 1).NameNext iSheets("报表").Range("j4").CopyFromRecordset rst1rst1.Closecnn1.CloseSet rst1 = NothingSet cnn1 = NothingDim strsql2 As StringDim cnn2 As New ADODB.ConnectionDim rst2 As New ADODB.Recordsetcnn2.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql2 = "transform sum(指标数) SELECT 单位,类,款,项 from[报表$j3:q10000] where 归口='" & Range("g2") _.Value & "' and 月<=" & Range("h2").Value & "group by 单位,类,款,项 order by 单位 desc pivot 股 "rst2.Open strsql2, cnn2For i = 1 To rst2.Fields.CountSheets("报表").Cells(3, i + 19) = rst2.Fields(i - 1).NameNext iSheets("报表").Range("t4").CopyFromRecordset rst2rst2.Closecnn2.CloseSet rst2 = NothingSet cnn2 = NothingDim strsql3 As StringDim cnn3 As New ADODB.ConnectionDim rst3 As New ADODB.Recordsetcnn3.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql3 = "SELECT 单位,类,款,sum(专业股) as 专业股,sum(预算股) as 预算股 from[报表$t3:y10000] group by 单位,类,款 order by 单位 desc"rst3.Open strsql3, cnn3For i = 1 To rst3.Fields.CountSheets("报表").Cells(3, i + 26) = rst3.Fields(i - 1).NameNext iSheets("报表").Range("aa4").CopyFromRecordset rst3rst3.Closecnn3.CloseSet rst3 = NothingSet cnn3 = NothingDim strsql4 As StringDim cnn4 As New ADODB.ConnectionDim rst4 As New ADODB.Recordsetcnn4.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql4 = "SELECT 单位,类,sum(专业股) as 专业group by 单位,类 order by 单位 desc"rst4.Open strsql4, cnn4For i = 1 To rst4.Fields.CountSheets("报表").Cells(3, i + 32) = rst4.Fields(i - 1).NameNext iSheets("报表").Range("ag4").CopyFromRecordset rst4rst4.Closecnn4.CloseSet rst4 = NothingSet cnn4 = NothingDim strsql5 As StringDim cnn5 As New ADODB.ConnectionDim rst5 As New ADODB.Recordsetcnn5.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql5 = "SELECT 单位,sum(专业股) as 专业group by 单位 order by 单位 desc"rst5.Open strsql5, cnn5For i = 1 To rst5.Fields.CountSheets("报表").Cells(3, i + 37) = rst5.Fields(i - 1).NameNext iSheets("报表").Range("al4").CopyFromRecordset rst5rst5.Closecnn5.CloseSet rst5 = NothingSet cnn5 = NothingColumns("AD:AD").SelectSelection.Insert Shift:=xlToRightRange("ad3") = "项"Columns("Aj:Ak").SelectSelection.Insert Shift:=xlToRightRange("aj3") = "款"Range("ak3") = "项"Columns("Ap:Ar").SelectSelection.Insert Shift:=xlToRightRange("ap3") = "类"Range("aq3") = "款"Range("ar3") = "项"Dim strsql6 As StringDim cnn6 As New ADODB.ConnectionDim rst6 As New ADODB.Recordsetcnn6.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql6 = " SELECT 单位,类,款,项,专业股,预算股from [报表$t3:y10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$aa3:af10000] union all SELECT 单位,类,款,项,专业股,预算股from [报表$ah3:am10000] union all SELECT 单位,类,款,项,专业股,预算股 from [报表$ao3:at10000] order by 单位 desc,类,款,项 "rst6.Open strsql6, cnn6For i = 1 To rst6.Fields.CountSheets("报表").Cells(3, i) = rst6.Fields(i - 1).NameNext iSheets("报表").Range("a4").CopyFromRecordset rst6rst6.Closecnn6.CloseSet rst6 = NothingSet cnn6 = NothingRange("j1:au10000").ClearContentsDim p As LongDim prow As Longprow = Range("a3").End(xlDown).RowFor p = 4 To prowRange("g3") = "金额"Cells(p, 7) = VBA.Round(Cells(p, 6) - Cells(p, 5), 2)Next pApplication.ScreenUpdating = TrueEnd Sub2、分开写代码:Sub 连接()Application.ScreenUpdating = FalseDim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 月,归口,股,单位,类,款,项,sum(指标数) as 指标数 from[专业$a3:h10000] group by 月,归口,股,单位,类,款,项 union all SELECT 月, 归口,股,单位,类,款,项,sum(指标数) as 指标数 from[预算$a3:l10000] group by 月, 归口,股,单位,类,款,项 order by 股 desc"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 9) = rst.Fields(i - 1).NameNext iSheets("报表").Range("j4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd SubSub 项()Application.ScreenUpdating = FalseCall 连接Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = "transform sum(指标数) SELECT 单位,类,款,项 from [报表$j3:q10000] where 归口= '" &Range("g2").Value & "' and 月<=" & Range("h2").Value & " group by 单位,类,款,项pivot 股"rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 19) = rst.Fields(i - 1).NameNext iSheets("报表").Range("t4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingApplication.ScreenUpdating = TrueEnd SubSub 款()Application.ScreenUpdating = FalseCall 项Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类,款, sum(专业股) as 专业股, sum(预算股) as 预算股from [报表$t3:y10000] group by 单位,类,款 "rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 26) = rst.Fields(i - 1).NameNext iSheets("报表").Range("aa4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingColumns("AD:AD").SelectSelection.Insert Shift:=xlToRightCells(3, 30) = "项"Application.ScreenUpdating = TrueEnd SubSub 类()Application.ScreenUpdating = FalseCall 款Dim i As IntegerDim strsql As StringDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordsetcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Hdr=Yes';Data Source=" & ThisWorkbook.FullNamestrsql = " SELECT 单位,类, sum(专业股) as 专业股, sum(预算股) as 预算股from [报表$aa3:af10000] group by 单位,类 "rst.Open strsql, cnnFor i = 1 To rst.Fields.CountSheets("报表").Cells(3, i + 33) = rst.Fields(i - 1).NameNext iSheets("报表").Range("ah4").CopyFromRecordset rstrst.Closecnn.CloseSet rst = NothingSet cnn = NothingColumns("AJ:AJ").SelectSelection.Insert Shift:=xlToRightColumns("AK:AK").SelectSelection.Insert Shift:=xlToRightRange("AJ3").SelectActiveCell.FormulaR1C1 = "款"Range("AK3").SelectActiveCell.FormulaR1C1 = "项"Application.ScreenUpdating = TrueEnd SubSub 单位()Application.ScreenUpdating = FalseCall 类Dim i As Integer。
前言咱们平常在工作表单元格的公式中常常利用函数,Excel自带的经常使用的函数多达300多个,功能壮大,丰硕多彩,可是在VBA中不能直接应用,必需在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。
而能在VBA中直接应用的函数也有几十个,下面将一一详细介绍经常使用的40个VBA函数,以供大伙儿学习参考。
第1.1例ASC函数一、题目:要求编写一段代码,运行后取得字符串”Excel”的首字母和”e”的ASCII值。
二、代码:Sub 例如_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 例如_1_01():宏程序的开始语句。
2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。
也能够写为Dim myNum1 As Integer 。
Integer 变量存储为16位(2 个字节)的数值形式,其范围为-32,768 到32,767 之间。
Integer 的类型声明字符是百分比符号(%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。
Asc函数返回一个Integer,代表字符串中首字母的字符的ASCII代码。
语法Asc(string)必要的string(字符串)参数能够是任何有效的字符串表达式。
若是string 中没有包括任何字符,那么会产生运行时错误。
4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。
前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。
而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。
第1.1例 ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。
二、代码:Sub 示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel") '返回69myNum2 = Asc("e") '返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub 示例_1_01():宏程序的开始语句。
2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。
也可以写为 Dim myNum1 As Integer 。
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。
Integer 的类型声明字符是百分比符号 (%)。
3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。
Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。
语法Asc(string)必要的 string(字符串)参数可以是任何有效的字符串表达式。
如果 string 中没有包含任何字符,则会产生运行时错误。
4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。
Abs函数返回参数的绝对值,其类型和参数相同。
Array函数返回一个包含数组的Variant。
Asc函数返回一个Integer,代表字符串中首字母的字符代码。
Atn函数返回一个Double,指定一个数的反正切值。
CallByName函数执行一个对象的方法,或者设置或返回一个对象的属性。
Choose函数从参数列表中选择并返回一个值。
Chr函数返回String,其中包含有与指定的字符代码相关的字符。
Cos函数返回一个Double,指定一个角的余弦值。
CreateObject函数创建并返回一个对ActiveX对象的引用。
CurDir函数返回一个Variant(String),用来代表当前的路径。
CVErr函数返回Error子类型的Variant,其中包含指定的错误号。
Date函数返回包含系统日期的Variant(Date)。
DateAdd函数返回包含一个日期的Variant(Date),这一日期还加上了一段时间间隔。
DateDiff函数返回Variant(Long)的值,表示两个指定日期间的时间间隔数目。
DatePart函数返回一个包含已知日期的指定时间部分的Variant(Integer)。
DateSerial函数返回包含指定的年、月、日的Variant(Date)。
DateValue函数返回一个Variant(Date)。
Day函数返回一个Variant(Integer),其值为1到31之间的整数,表示一个月中的某一日。
DDB函数返回一个Double,指定一笔资产在一特定期间内的折旧。
可使用双下落收复平衡方法或其它指定的方法进行计算。
Dir函数返回一个String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
DoEvents函数转让控制权,以便让操作系统处理其它的事件。
Environ函数返回String,它关连于一个操作系统环境变量。
在Macintosh中不可用EOF函数返回一个Integer,它包含Boolean值True,表明已经到达为Random或顺序Input 打开的文件的结尾。
VBA内部函数在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。
一.测试函数IsNumeric(x) ‘是否为数字, 返回Boolean结果,True or FalseIsDate(x) ‘是否是日期, 返回Boolean结果,True or FalseIsEmpty(x)‘是否为Empty, 返回Boolean结果,True or FalseIsArray(x) ‘指出变量是否为一个数组。
IsError(expression) ‘指出表达式是否为一个错误值IsNull(expression) ‘指出表达式是否不包含任何有效数据 (Null)。
IsObject(identifier)‘指出标识符是否表示对象变量二.vba数学函数Sin(X)、Cos(X)、Tan(X)、Atan(x) 三角函数,单位为弧度Log(x) 返回x的自然对数Exp(x)返回 exAbs(x) 返回绝对值Int(number)、Fix(number) 都返回参数的整数部分,区别:Int 将 -8.4 转换成 -9,而 Fix 将-8.4 转换成 -8Sgn(number) 返回一个 Variant (Integer),指出参数的正负号Sqr(number) 返回一个 Double,指定参数的平方根VarType(varname) 返回一个 Integer,指出变量的子类型Rnd(x)返回0-1之间的单精度数据,x为随机种子三、vba字符串函数列表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,代表字符串中首字母的字符代码Chr(charcode) 返回string,其中包含有与指定的字符代码相关的字符四.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时间函数Now 返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。
V B A函数大全自己的公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]Abs函数返回参数的绝对值,其类型和参数相同。
Array函数返回一个包含的。
Asc函数返回一个,代表字符串中首字母的。
Atn函数返回一个,指定一个数的反正切值。
CallByName函数执行一个对象的方法,或者设置或返回一个的属性。
Choose函数从列表中选择并返回一个值。
Chr函数返回,其中包含有与指定的相关的字符。
Cos函数返回一个Double,指定一个角的余弦值。
CreateObject函数创建并返回一个对的引用。
CurDir函数返回一个Variant(String),用来代表当前的路径。
CVErr函数返回Error子类型的,其中包含指定的。
Date函数返回包含系统日期的Variant(Date)。
DateAdd函数返回包含一个日期的Variant(Date),这一日期还加上了一段时间间隔。
DateDiff函数返回Variant(Long)的值,表示两个指定日期间的时间间隔数目。
DatePart函数返回一个包含已知日期的指定时间部分的Variant(Integer)。
DateSerial函数返回包含指定的年、月、日的Variant(Date)。
DateValue函数返回一个Variant(Date)。
Day函数返回一个Variant(Integer),其值为1到31之间的整数,表示一个月中的某一日。
DDB函数返回一个,指定一笔资产在一特定期间内的折旧。
可使用双下落收复平衡方法或其它指定的方法进行计算。
Dir函数返回一个String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
DoEvents函数转让控制权,以便让操作系统处理其它的事件。
Environ函数返回String,它关连于一个操作系统环境变量。
在Macintosh中不可用EOF函数返回一个,它包含值True,表明已经到达为Random或顺序Input打开的文件的结尾。
Error函数返回对应于已知的错误信息。
Exp函数返回Double,指定e(自然对数的底)的某次方。
FileAttr函数返回一个,表示使用Open语句所打开文件的文件方FileDateTime函数返回一个Variant(Date),此为一个文件被创建或最后修改后的日期和时间。
Filter函数描述返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。
FormatCurrency函数描述返回一个货币值格式的表达式,它使用系统控制面板中定义的货币符号FormatDateTime函数描述返回一个日期或时间格式的表达式。
FormatNumber函数描述返回一个数字格式的表达式。
语法FormatPercent函数描述返回一个百分比格式(乘以100)的表达式,后面有%符号。
FreeFile函数返回一个,代表下一个可供Open语句使用的。
FV函数返回一个,指定未来的定期定额支付且利率固定的年金。
GetAllSettings函数从Windows或(Macintosh中)应用程序初始化文件中的信息中返回应用程序项目的所有注册表项设置及其相应值(开始是由SaveSetting产生)。
GetAttr函数返回一个Integer,此为一个文件、目录、或文件夹的属性。
GetObject函数返回文件中的的引用。
Hex函数返回代表十六进制数值的。
Hour函数返回一个Variant(Integer),其值为0到23之间的整数,表示一天之中的某一钟点。
IIf函数根据的值,来返回两部分中的其中一个。
IMEStatus函数返回一个,用来指定当前MicrosoftWindows的输入法(IME)方式;只对东亚区版本有效。
Input函数返回,它包含以Input或Binary方式打开的文件中的字符。
InputBox函数在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的。
InStr函数返回Variant(Long),指定一字符串在另一字符串中最先出现的位置。
InStrRev函数描述返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。
Int、Fix函数返回参数的整数部分。
IPmt函数返回一个,指定在一段时间内对定期定额支付且利率固定的年金所支付的利息值。
IRR函数返回一个,指定一系列周期性现金流(支出或收入)的内部利率。
IsArray函数返回Boolean值,指出是否为一个。
IsDate函数返回Boolean值,指出一个是否可以转换成日期。
IsEmpty函数返回Boolean值,指出是否已经初始化。
IsError函数返回Boolean值,指出是否为一个错误值。
IsMissing函数返回Boolean值,指出一个可选的Variant是否已经传递给。
IsNull函数返回Boolean值,指出是否不包含任何有效数据()。
IsNumeric函数返回Boolean值,指出的运算结果是否为数。
IsObject函数返回Boolean值,指出是否表示对象。
LCase函数返回转成小写的。
Left函数返回Variant(String),其中包含字符串中从左边算起指定数量的字Len函数返回,其中包含字符串内字符的数目,或是存储一所需的字节数。
Loc函数返回一个,在已打开的文件中指定当前读/写位置。
LOF函数返回一个,表示用Open语句打开的文件的大小,该大小以字节为单位。
Log函数返回一个Double,指定参数的自然对数值。
LTrim、RTrim与Trim函数返回Variant(String),其中包含指定字符串的拷贝,没有前导空白(LTrim)、尾随空白(RTrim)或前导和尾随空白(Trim)。
MacID函数此函数用在Macintosh上,将长为4个字符的转换成被Dir,Kill,Shell,和AppActivate.使用的值。
MacScript函数执行一个脚本并返回由此脚本返回的值,如果脚本有返回值的话Mid函数返回Variant(String),其中包含字符串中指定数量的字符。
Minute函数返回一个Variant(Integer),其值为0到59之间的整数,表示一小时中的某分钟。
MIRR函数返回一个,指定一系列修改过的周期性现金流(支出或收入)的内部利率。
Month函数返回一个Variant(Integer),其值为1到12之间的整数,表示一年中的某月。
MonthName函数描述返回一个表示指定月份的字符串。
MsgBox函数在对话框中显示消息,等待用户单击按钮,并返回一个Integer告诉用户单击哪一个按钮。
Now函数返回一个Variant(Date),根据计算机系统设置的日期和时间来指定日期和时间。
语法NPer函数返回一个,指定定期定额支付且利率固定的总期数。
NPV函数返回一个,指定根据一系列定期的现金流(支付和收入)和贴现率而定的投资净现值。
Oct函数返回Variant(String),代表一数值的八进制值。
Partition函数返回一个Variant(String),指定一个范围,在一系列计算的范围中指定的数字出现在这个范围内。
Pmt函数返回一个,指定根据定期定额支付且利率固定的年金支付额。
PPmt函数返回一个,指定在定期定额支付且利率固定的年金的指定期间内的本金偿付额。
PV函数返回一个指定在未来定期、定额支付且利率固定的年金现值。
QBColor函数返回一个,用来表示所对应颜色值的RGB颜色码。
Rate函数返回一个,指定每一期的年金利率。
Replace函数描述返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。
RGB函数返回一个整数,用来表示一个RGB颜色值。
Right函数返回Variant(String),其中包含从字符串右边取出的指定数量的字符。
Rnd函数返回一个包含随机数值的Single。
语法Round函数描述返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
LTrim、RTrim与Trim函数返回Variant(String),其中包含指定字符串的拷贝,没有前导空白(LTrim)、尾随空白(RTrim)或前导和尾随空白(Trim)。
Second函数返回一个Variant(Integer),其值为0到59之间的整数,表示一分钟之中的某个秒。
Seek函数返回一个,在Open语句打开的文件中指定当前的读/写位置。
Sgn函数返回一个Variant(Integer),指出参数的正负号。
Shell函数执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的任务ID,若不成功,则会返回0。
Sin函数返回一Double,指定参数的sine(正弦)值。
SLN函数返回一个,在一期里指定一项资产的直线折旧。
Sqr函数返回一个Double,指定参数的平方根。
语法Space函数返回特定数目空格的Variant(String)。
Spc函数与Print#语句或Print方法一起使用,对输出进行定位。
Str函数返回代表一数值的Variant(String)。
StrComp函数返回Variant(Integer),为的结果。
StrConv函数返回按指定类型转换的Variant(String)。
StrReverse函数描述返回一个字符串,其中一个指定子字符串的字符顺序是反向的。
String函数返回Variant(String),其中包含指定长度重复字符的字符Switch函数计算一组列表的值,然后返回与表达式列表中最先为True的表达式所相关的Variant数值或表达式。
SYD函数返回一个,指定某项资产在一指定期间用年数总计法计算的折旧。
Tab函数与Print#语句或Print方法一起使用,对输出进行定位。
Tan函数返回一个Double的值,指定一个角的正切值。
Time函数返回一个指明当前系统时间的Variant(Date)。
Timer函数返回一个Single,代表从午夜开始到现在经过的秒数。
TimeSerial函数返回一个Variant(Date),包含具有具体时、分、秒的时间。
TimeValue函数返回一个包含时间的Variant(Date)。
TypeName函数返回一个String,提供有关的信息。
UBound函数返回一个型数据,其值为指定的维可用的最大下标。
UCase函数返回Variant(String),其中包含转成大写的字符串。
Val函数返回包含于字符串内的数字,字符串中是一个适当类型的数值。
VarType函数返回一个Integer,指出的子类型。
Weekday函数返回一个Variant(Integer),包含一个整数,代表某个日期是星期几。