首页 vba常用代码大全

vba常用代码大全

举报
开通vip

vba常用代码大全______________________________________________________________________________________________________________前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。而能在VBA中直接应用的函数也...

vba常用代码大全
______________________________________________________________________________________________________________前言我们平时在工作表单元格的公式中常常使用 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。 第1.1例 ASC函数一、题目:  要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。二、代码:Sub 示例_1_01()    DimmyNum1%,myNum2%    myNum1=Asc("Excel")  '返回69    myNum2=Asc("e")  '返回101    [a1]="myNum1=":[b1]=myNum1    [a2]="myNum2=":[b2]=myNum2EndSub      三、代码详解     1、Sub 示例_1_01():宏程序的开始语句。     2、DimmyNum1%,myNum2%:变量myNum1和myNum2声明为整型变量。      也可以写为 DimmyNum1AsInteger 。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。这里返回小写字母e的ASCII代码101。     5、[a1]="myNum1=":[b1]=myNum1:把字符串“myNum1=  “赋给A1单元格,把变量myNum1的值赋给B1单元格。     6、[a2]="myNum2=":[b2]=myNum2:把字符串“myNum2=  “赋给A2单元格,把变量myNum2的值赋给B2单元格。     7、EndSub:程序的结束语句,和“Sub示例_1_01()”相对应。 第1.2例 Chr函数一、题目"":  要求编写一段代码,运用Chr函数将ASCII值转换为对应的字符。二、代码:Sub 示例_1_02()DimmyChar1$,myChar2$myChar1=Chr(69)    ' 返回 E。myChar2=Chr(101)    ' 返回 e。[a1]="myChar1=":[b1]=myChar1[a2]="myChar2=":[b2]=myChar2EndSub三、代码详解     1、Sub 示例_1_02():宏程序的开始语句。     2、DimmyChar1$,myChar2$:变量myChar1和myChar2声明为字符串变量。 也可以写为 DimmyChar1AsString 。String  之字符码的范围是 0 到 255。字符集的前 128 个字符(0 到 127)对应于 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的 U.S. 键盘上的字符与符号。这前 128 个字符与 ASCII字符集中所定义的相同。后 128 个字符(128 到 255)则代表特殊字符,例如国际字符,重音符号,货币符号及分数。String 的类型声明字符为美元号 ($)。          3、myChar1=Chr(69):把Chr(69)的值赋给变量myChar1。这里返回大写字母E。     Chr函数根据字符代码返回一个字符。     语法     Chr(charcode)     必要的 charcode(字符代码) 参数是用来识别某字符的。     4、myChar2=Chr(101):把Chr 函数的值赋给变量myChar2。这里返回小写字母e。     5、[a1]="myChar1=":[b1]=myChar1:把字符串“myChar1=  “赋给A1单元格,把变量myChar1的值赋给B1单元格。     6、[a2]="myChar2=":[b2]=myChar2:把字符串“myChar2=  “赋给A2单元格,把变量myChar2的值赋给B2单元格。     7、EndSub:程序的结束语句,和“Sub示例_1_02()”相对应。 第1.3例 Choose函数一、题目:  要求编写一段代码,运用Choose函数根据指定数字选择对应的字符串。二、代码:Sub 示例_1_03()       DimNum%       Num=2       MsgBox  Choose(Num,"一月","二月","三月")EndSub三、代码详解     1、Sub 示例_1_03():宏程序的开始语句。宏名为示例_1_03。     2、DimNum% :变量Num声明为整型变量。     3、Num=2 :把2赋给变量Num。     4、MsgBox  Choose(Num,"一月","二月","三月") :     Choose函数从参数列表中选择并返回一个值。     语法     Choose(index,choice-1[,choice-2,...[,choice-n]])     Choose 会根据 index 的值来返回选择项列表中的某个值。如果 index 是 1,则 Choose会返回列表中的第 1 个选择项。如果 index 是 2,则会返回列表中的第 2 个选择项,以此类推。     Index是必要参数,数值表达式或字段,它的运算结果是一个数值,且界于 1 和可选择的项目数之间。当 index小于 1 或大于列出的选择项数目时,Choose 函数返回 Null。如果 index 不是整数,则会先四舍五入为与其最接近的整数。    第1.4例 Cos函数一、题目:  要求编写一段代码,运用Cos函数根据指定角度的余弦计算其正割的值。二、代码:Sub 示例_1_04()       Dimjiaodu,zenge       jiaodu=1.3          zenge=1/ Cos(jiaodu)           MsgBox  “角度为 ” &jiaodu& “的正割的值= ” &zengeEndSub三、代码详解     1、Sub 示例_1_04():宏程序的开始语句。宏名为示例_1_04。     2、Dimjiaodu,zenge :两个变量都被指定为可变型数据类型。当声明常数、变量或参数时,若无指定数据类型则会自动的指定成 Variant(可变型) 数据类型。声明成 Variant数据类型的变量可以为字符串、日期、时间、Boolean或数值。     3、jiaodu=1.3 :把以“弧度”为单位的角度1.3赋给变量jiaodu。     4、zenge=1/Cos(jiaodu) :利用1/余弦算得正割(sec())的值,赋给变量zenge。     Cos函数返回一个角的余弦值。其参数是表示一个以弧度为单位的角。 5、MsgBox  “角度为 ” &jiaodu& “的正割的值= ” &zenge  :利用MsgBox函数显示算得的正割(sec())的值。 第1.5例 Date函数一、题目:  要求编写一段代码,运用Date函数显示系统日期的值。二、代码:Sub 示例_1_05()       DimmyDate       myDate=DateMsgBox  “系统日期为 ” &myDateEndSub三、代码详解     1、Sub 示例_1_05():宏程序的开始语句。宏名为示例_1_05。 2、DimmyDate :变量myDate被指定为可变型数据类型。 3、myDate=Date :把系统日期的值赋给变量myDate。 Date函数返回系统当前的日期。 4、MsgBox  “系统日期为 ” &myDate :利用MsgBox函数显示系统日期的值。 第1.6例 DateAdd函数一、题目:  要求编写一段代码,运用DateAdd函数显示返回一定间隔后的日期。二、代码:Sub 示例_1_06()       DimdyrqAsDate          DimjglxAsString       DimnAsInteger       DimMsg       jglx="m"           dyrq=InputBox("请输入一个日期")       n=InputBox("输入增加月的数目:")       Msg="新日期:"&DateAdd(jglx,n,dyrq)       MsgBoxMsgEndSub三、代码详解     1、Sub 示例_1_06():宏程序的开始语句。宏名为示例_1_06。 2、DimdyrqAsDate :变量dyrq声明为日期对象型数据类型。其余几个变量分别是字符串型、整型和可变型变量。 3、jglx="m" :用字符m来指定以“月份”作为间隔。 4、dyrq=InputBox("请输入一个日期") :用InputBox函数来让用户输入一个日期,并把用户输入的日期赋给变量dyrq。 5、n=InputBox("输入增加月的数目:") :用InputBox函数来让用户输入间隔月的数目,并把用户输入的值赋给变量n。 6、Msg="新日期:"&DateAdd(jglx,n,dyrq) :用DateAdd函数计算得到的新的日期和字符串“新日期: ”连接起来赋给变量Msg。 DateAdd函数返回一个日期,这一日期加上了一个时间间隔。     语法     DateAdd(interval,number,date)     DateAdd 函数语法中有下列命名参数:     interval  必要。字符串表达式,是所要加上去的时间间隔。它具有好多设定值,比如”m”为月;”d”为日;”yyyy”为年等等。     number  必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。  date 必要。表示日期的文字。 7、MsgBox  Msg :利用MsgBox函数显示Msg的值。 第1.7例 DateDiff函数一、题目:  要求编写一段代码,运用DateDiff函数返回某个指定日期距离今天的天数。二、代码:Sub 示例_1_07()       DimzdrqAsDate          DimMsg       zdrq=InputBox("请输入一个日期:")       Msg="离开今天的天数:"&DateDiff("d",Now,zdrq)       MsgBoxMsgEndSub三、代码详解 1、Sub 示例_1_07():宏程序的开始语句。宏名为示例_1_07。 2、DimzdrqAsDate :变量zdrq声明为日期对象型数据类型。 3、zdrq=InputBox("请输入一个日期") :用InputBox函数来让用户输入一个日期,并把用户输入的日期赋给变量zdrq。 4、Msg="离开今天的天数:"&DateDiff("d",Now,zdrq) :用DateDiff函数计算得到的结果和字符串“离开今天的天数: ”连接起来赋给变量Msg。 5、MsgBox  Msg :利用MsgBox函数显示Msg的值。 DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。  DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]]) DateDiff 函数语法中有下列命名参数: interval  必要。字符串表达式,是所要加上去的时间间隔。它具有好多设定值,与DateAdd函数相同;此例中的"d",表示天数; Date1,date2      必要;计算中要用到的两个日期。 Firstdayofweek     可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。 firstweekofyear    可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。 第1.8例 DatePart函数一、题目:  要求编写一段代码,运用DatePart函数返回某个指定日期是在一年的哪一个季度。二、代码:Sub 示例_1_08()       DimzdrqAsDate          DimMsg          zdrq=InputBox("请输入一个日期:")       Msg="季度:"&DatePart("q",zdrq)       MsgBoxMsgEndSub三、代码详解 1、Sub 示例_1_08():宏程序的开始语句。宏名为示例_1_08。 2、DimzdrqAsDate :变量zdrq声明为日期对象型数据类型。 3、zdrq=InputBox("请输入一个日期") :用InputBox函数来让用户输入一个日期,并把用户输入的日期赋给变量zdrq。 4、Msg="季度:"&DatePart("q",zdrq) :用DatePart函数计算得到的结果和字符串“季度: ”连接起来赋给变量Msg。5、MsgBox  Msg :利用MsgBox函数显示Msg的值。 DatePart 函数 DatePart(interval,date,[,firstdayofweek[,firstweekofyear]]) 语法中有下列命名参数: interval  必要。字符串表达式,是所要加上去的时间间隔。它具有好多设定值,与DateAdd函数相同;此例中的"q",表示季度; Date,  必要;计算中要用到的两个日期。 Firstdayofweek     可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。 firstweekofyear    可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。  第1.9例 DateSerial函数一、题目:  要求编写一段代码,运用DateSerial函数返回指定日期的Date类型。二、代码:Sub 示例_1_09()       Dimzdrq       zdrq=DateSerial(2008,8,8)          MsgBoxzdrqEndSub三、代码详解 1、Sub 示例_1_09():宏程序的开始语句。宏名为示例_1_09。 2、Dimzdrq :变量zdrq声明为可变型数据类型。 3、zdrq=DateSerial(2008,8,8)  :DateSerial函数转换所得的结果赋给变量zdrq。 DateSerial函数返回指定日期年月日的日期格式。 语法 DateSerial(year,month,day) DateSerial 函数语法有下列的命名参数: year      必要;整型。从 100 到 9999 间的整数,或一数值表达式。 month   必要;整型。任何数值表达式。 day       必要;整型。任何数值表达式。 4、MsgBox  zdrq :利用MsgBox函数显示zdrq的值。  第1.10例 DateValue 函数一、题目:  要求编写一段代码,运用DateValue函数返回指定日期的Date类型。二、代码:Sub 示例_1_010()   Dimzdrq   zdrq=DateValue("August8,2008")      MsgBoxzdrqEndSub三、代码详解 1、Sub 示例_1_010():宏程序的开始语句。宏名为示例_1_010。 2、Dimzdrq :变量zdrq声明为可变型数据类型。 3、zdrq=DateValue("August8,2008")  :DateSerial函数转换所得的结果赋给变量zdrq。 4、MsgBox  zdrq :利用MsgBox函数显示zdrq的值。  DateValue函数 将字符串转换为日期格式。 语法 DateValue(date) DateValue 函数的参数: date       必要;通常是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日之间的一个日期。但是,date 也可以是任何表达式,其所代表的日期、时间在上述范围内。 第1.11例 Day函数一、题目:  要求编写一段代码,运用Day函数返回指定日期的日。二、代码:Sub 示例_1_11()       Dimzdrq       zdrq=#2008-12-8#          MsgBox  zdrq&" 这天的日为:"&Day(zdrq)   EndSub三、代码详解 1、Sub 示例_1_11():宏程序的开始语句。宏名为示例_1_11。 2、Dimzdrq :变量zdrq声明为可变型数据类型。 3、zdrq=#2008-8-8#  :把日期2008-8-8赋给变量zdrq。 4、MsgBox  zdrq&" 这天的日为:"&Day(zdrq):利用MsgBox函数显示Day(zdrq)的值。    Day函数返回一个其值为 1 到 31 之间的整数,表示一个月中的某一日。 语法 Day(date) Day 函数的参数: date必要的,可以是任何能够表示日期的 Variant、数值表达式、字符串表达式或它们的组合。        第1.12例 Dir函数一、题目:  要求编写一段代码,运用Dir函数返回一个文件夹的文件列表。二、代码:Sub 示例_1_12()       Dimwjm       wjm=Dir("C:\WINDOWS\WIN.ini")         MsgBoxwjm       wjm=Dir("C:\WINDOWS\*.ini")       wjm=DirEndSub三、代码详解 1、Sub 示例_1_12():宏程序的开始语句。宏名为示例_1_12。 2、Dimwjm :变量wjm声明为可变型数据类型。 3、wjm=Dir("C:\WINDOWS\WIN.ini")  :     如果该文件存在则返回“WIN.INI”(在C:\Windows 文件夹中) ,把返回的文件名赋给变量wjm 。如果该文件不存在则wjm=””。 4、wjm=Dir("C:\WINDOWS\*.ini")  :     返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,函数将返回按条件第一个找到的文件名。 5、wjm=Dir  :     若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 下的下一个 *.ini 文件。   Dir函数返回一个字符串 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。         Dir[(pathname[,attributes])]     Dir 函数的语法具有以下几个部分:     pathname    可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。       attributes      可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。         第1.13例 Fix函数一、题目:  要求编写一段代码,运用Fix函数返回某数值的整数部分。二、代码:Sub 示例_1_13()       MsgBox “99.8的整数部分是: ” &Fix(99.8)          MsgBox “-99.8的整数部分是: ” &Fix(-99.8)   EndSub三、代码详解 1、Sub 示例_1_13():宏程序的开始语句。宏名为示例_1_13。 2、MsgBox  “99.8的整数部分是: ” &Fix(99.8)  : 利用MsgBox函数显示Fix(99.8)的值。 3、MsgBox  “-99.8的整数部分是: ” &Fix(-99.8)  : 利用MsgBox函数显示Fix(-99.8)的值。  Fix函数返回参数的整数部分。     语法     Fix(number) number 必要的 是任何有效的数值表达式。 Int 及 Fix 函数在返回某数值的整数部分时有何不同。当参数为负数时,Int 函数返回小于或等于该参数之最大整数,而 Fix 函数则返回大于或等于该参数之最小整数。 第1.14例 Format函数一、题目:  要求编写一段代码,运用Format函数对指定字符串返回指定格式的输出。二、代码:Sub 示例_1_14()       Dimsj,rq       sj=“19:08:43”       rq=“2008-8-8”       MsgBoxsj& “ 的格式设为"hh:mm:ssAMPM": ” &Format(sj,"hh:mm:ssAMPM")    ' 返回 "07:08:43下午"。       MsgBoxrq&  “ 的格式设为"dddd,mmmdyyyy": ” &Format(rq,"dddd,mmmdyyyy")   EndSub三、代码详解 1、Sub 示例_1_14():宏程序的开始语句。宏名为示例_1_14。 2、Dimsj,rq    :变量sj,rq声明为可变型数据类型。 3、sj= “19:08:43”  :把字符串”19:08:43”赋给变量sj。 4、rq= “2008-8-8”  :把字符串”2008-8-8”赋给变量rq。 5、MsgBoxsj& “ 的格式设为"hh:mm:ssAMPM": ” &Format(sj,"hh:mm:ssAMPM")  : 利用MsgBox函数显示Format函数的值。返回 "07:08:43下午"。 6、MsgBoxrq&  “ 的格式设为"dddd,mmmdyyyy": ” &Format(rq,"dddd,mmmdyyyy")   :  利用MsgBox函数显示Format函数的值。代码执行后如图5-14所示。  Format函数 根据有效的命名表达式来对指定的表达式进行格式化。  Format(expression[,format[,firstdayofweek[,firstweekofyear]]]) Format 函数的语法具有下面几个部分: expression     必要参数。任何有效的表达式。 format   可选参数。有效的命名表达式或用户自定义格式表达式。 firstdayofweek     可选参数。常数,表示一星期的第一天。 firstweekofyear    可选参数。常数,表示一年的第一周。         第1.15例 Hour函数一、题目:  要求编写一段代码,运用Hour函数对指定字符串返回小时数。二、代码:Sub 示例_1_15()    Dimsj    sj="3:45:20PM"    ' 指定一时间字符串。    MsgBoxsj&" 的小时是: "&Hour(sj)  EndSub三、代码详解 1、Sub 示例_1_15():宏程序的开始语句。宏名为示例_1_15。 2、Dimsj    :变量sj声明为可变型数据类型。 3、sj= “3:45:20PM”  :把字符串”3:45:20PM”赋给变量sj。 4、MsgBoxsj&  " 的小时是: "&Hour(sj) : 利用MsgBox函数显示Hour函数的值。代码执行后如图5-15所示。  Hour 函数 返回一个其值为 0 到 23 之间的整数,表示一天之中的某一钟点。 语法 Hour(time) Time 必要的参数,可以是任何能够表示时刻的数值表达式、字符串表达式或它们的组合。 第1.16例 IIF函数一、题目:  要求编写一段代码,运用IIF函数根据判断条件返回结果。二、代码:     Sub 示例_1_16()         DimCheshiAsString,dxAsInteger         dx=560         Cheshi=IIF(dx>1000,"大","小")         MsgBoxdx&" 比1000要"&Cheshi&""&Abs(1000-dx)     EndSub三、代码详解 1、Sub 示例_1_16():宏程序的开始语句。宏名为示例_1_16。 2、DimCheshiAsString,dxAsInteger    :变量Cheshi声明为字符串数据类型,dx声明为整型。 3、dx=560  :把数字560赋给变量dx。 4、Cheshi=IIF(dx>1000,"大","小")  : 根据变量dx是否大于1000的条件来判断,并且把返回的结果赋给变量Cheshi。 5、MsgBox  dx&" 比1000要"&Cheshi&""&Abs(1000-dx) : 利用MsgBox函数显示最后的值。其中Abs函数是取表达式的绝对值函数。  IIF 函数 根据表达式的值,来返回两部分中的其中一个。  IIF(expr,truepart,falsepart) IIF 函数的语法含有下面这些命名参数: expr      必要参数。用来判断真伪的表达式。 truepart 必要参数。如果 expr 为 True,则返回这部分的值或表达式。 falsepart       必要参数。如果 expr 为 False,则返回这部分的值或表达式。 第1.17例 InputBox函数一、题目:  要求编写一段代码,运用InputBox函数,用户输入一定范围的数值并返回结果。二、代码: SubSub 示例_1_17()             DimMsg$,bt$,Default$,MyValue,aa             Msg="输入一个10到25之间的数值:"                bt="InputBox 函数示例"             Default="10"    ' 设置缺省值。 100:    MyValue=InputBox(Msg,bt,Default)    IfMyValue<10OrMyValue>25Then            aa=MsgBox("输入数值超出范围,请重新输入或者退出。",1)            Ifaa<>vbOKThenExitSub            GoTo100   Else            MsgBox"你输入的是 "&MyValue EndIf EndSub三、代码详解 1、Sub 示例_1_17():宏程序的开始语句。宏名为示例_1_17。 2、DimMsg$,bt$,Default,MyValue,aa    :变量Msg、Default和bt声明为字符串数据类型,其它的没有显式声明,都为可变型数据类型。 3、Msg="输入一个10到25之间的数值:"    :设置提示信息,把字符串赋给变量Msg。 4、bt="InputBox 函数示例"     :设置标题,把字符串赋给变量bt。 5、Default="10"     :设置缺省值,把字符串赋给变量Default。 6、MyValue=InputBox(Msg,bt,Default)     :通过InputBox函数显示信息、标题及缺省值,把函数返回值赋给变量MyValue。 7、IfMyValue<10OrMyValue>25Then  :如果InputBox函数返回的数值小于10或者大于25,那么执行下面的语句。 8、aa=MsgBox("输入数值超出范围,请重新输入或者退出。",1)  :如果InputBox函数返回的数值超出了范围,显示一个消息框,消息框里面的第2个参数是1,表示消息框上有两个按钮:“确定”和“取消”按钮。并把消息框返回的结果赋给变量aa。 9、Ifaa<>vbOKThenExitSub  :如果用户按了消息框上的“取消”按钮,就退出本程序。 10、GoTo100  :如果用户按了消息框上的“确定”按钮,就转而从行号100开始执行代码。 11、MsgBox"你输入的是 "&MyValue  :如果用户输入了符合要求的数值,按了回车键或者“确定”按钮,消息框显示用户输入的值。 InputBox 函数在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的字符串。语法InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])InputBox 函数的语法具有以下几个命名参数:Prompt    必需的。作为对话框消息出现的字符串表达式。Prompt 的最大长度大约是 1024个字符,由所用字符的宽度决定。如果 Prompt 包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13)&Chr(10)) 来分隔。Title 可选的。显示对话框标题栏中的字符串表达式。如果省略 Title,则把应用程序名放入标题栏中。Default    可选的。显示文本框中的字符串表达式,在没有其它输入时作为缺省值。如果省略Default,则文本框为空。         其它参数省略,请参见Excel帮助文件。 第1.18例 Instr函数一、题目:要求编写一段代码,运用Instr函数,在一字符串中查找另一字符串并返回结果。二、代码:Sub 示例_1_18()              DimbssString,yczChar,wz              bssString="ABpAApCDPBBP"                 yczChar="P"                             MsgBox"bssString=""ABpAApCDPBBP"""&Chr(10)&_"yczChar=""P"" 时: "&Chr(10)&Chr(10)&_"InStr(4,bssString,yczChar,1) 返回值为 "&_InStr(4,bssString,yczChar,1)              wz=Instr(1,bssString,yczChar,0)              wz=Instr(bssString,yczChar)    ' 返回 9。              wz=Instr(1,bssString,"W")    ' 返回 0。EndSub三、代码详解1、Sub 示例_1_18():宏程序的开始语句。宏名为示例_1_18。2、DimbssString,yczChar,wz    :变量bssString、yczChar和ws声明为可变型变量。3、bssString="ABpAApCDXPBBP"   : 把被搜索的字符串赋给变量bssString。4、yczChar="P"   : 把要查找的字符P赋给变量yczChar。5、MsgBox"bssString=""ABpAApCDPBBP"""&Chr(10)&_"yczChar=""P"" 时: "&Chr(10)&Chr(10)&_"InStr(4,bssString,yczChar,1) 返回值为 "&_InStr(4,bssString,yczChar,1): 用消息框显示从第四个字符开始,以文本比较的方式找字符P,返回值为 6(小写 p的位置)。小写 p 和大写 P 在文本比较下是一样的,也就是当函数的最后一个参数为1时,查找不分大小写。把要查找的字符P的位置赋给变量yczChar。式中Chr(10)是换行符。6、wz=Instr(1,bssString,yczChar,0)   :从第一个字符开始,以二进制比较的方式查找,返回值为 9(大写 P的位置)。小写 p 和大写 P 在二进制比较下是不一样的,也就是当函数的最后一个参数为0时,查找分大小写。把查找到的字符P的位置赋给变量wz。7、wz=Instr(bssString,yczChar)   :上一句也可写成这样的,因为缺省的比对方式为二进制比较(最后一个参数可省略)。第一个参数省略默认从第一个字符开始查找。返回值为 9。8、wz=Instr(1,bssString, ”W”)   :在被搜索的字符串中查找字符W,由于没找到返回值为0。 InStr 函数返回 Variant(Long),指定一字符串在另一字符串中最先出现的位置。语法InStr([start,]string1,string2[,compare])InStr 函数的语法具有下面的参数:start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果指定了 compare 参数,则一定要有 start 参数。string1    必要参数。接受搜索的字符串表达式。string2    必要参数。被搜索的字符串表达式。Compare可选参数。指定字符串比较。如果省略 compare,OptionCompare 的设置将决定比较的类型。compare 参数设置为:常数                            值    描述vbUseCompareOption    -1    使用OptionCompare 语句设置执行一个比较。vbBinaryCompare         0     执行一个二进制比较。vbTextCompare             1     执行一个按照原文的比较。vbDatabaseCompare             2     仅适用于MicrosoftAccess,执行一个基于数据库中信息的比较。 第1.19例 InstrRev函数一、题目:要求编写一段代码,运用InstrRev函数,返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。二、代码:Sub 示例_1_19()              DimbssString,yczChar,wz              bssString="ABpAApCDPBBP"                 yczChar="p"                ws=InstrRev(bssString,yczChar,4,1)                 MsgBoxws   EndSub三、代码详解1、Sub 示例_1_19():宏程序的开始语句。宏名为示例_1_19。2、DimbssString,yczChar,wz    :变量bssString、yczChar和ws声明为可变型变量。3、bssString="ABpAApCDXPBBP"   : 把被搜索的字符串赋给变量bssString。4、yczChar="p"   : 把要查找的字符P赋给变量yczChar。5、wz=InstrRev(bssString,yczChar,4,1)   :从第4个字符开始,按原文比较的方式从末尾往前查找字符p,返回值为3。InStrRev函数返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。语法InstrRev(stringcheck,stringmatch[,start[,compare]])InstrRev函数语法有如下命名参数:stringcheck     必需的。要执行搜索的字符串表达式。stringmatch     必需的。要搜索的字符串表达式。start 可选的。数值表达式,设置每次搜索的开始位置。如果忽略,则表示从字符串末尾位置开始搜索。compare  可选的。数字值,指出在判断子字符串时所使用的比较方法。如果忽略,则执行二进制比较。compare参数值如下:常数                            值    描述vbUseCompareOption    –1  用OptionCompare语句的设置值来执行比较。vbBinaryCompare       0     执行二进制比较。区分大小写。vbTextCompare           1     执行文字比较。不区分大小写。vbDatabaseCompare      2    只用于MicrosoftAccess。基于您的数据库信息执行比较。6、MsgBoxws  : 用消息框显示查找返回的值 3。 第1.20例 IsArray函数一、题目:要求编写一段代码,运用IsArray函数,返回一个变量是否为一个数组。二、代码:Sub 示例_1_20()DimArr1(1To8,1to3)AsInteger,Arr2                Arr2=Array(1,2,3,4,5)                MsgBox “Arr1 是否为数组: ” &IsArray(Arr1)     ' 返回 True。              MsgBox “Arr2 是否为数组: ” &IsArray(Arr2)     ' 返回 True。EndSub三、代码详解1、Sub 示例_1_20():宏程序的开始语句。宏名为示例_1_20。2、DimArr1(1To8,1to3)AsInteger,Arr2    :声明变量Arr1为整型数组、Arr2为可变型变量。3、Arr2=Array(1,2,3,4,5)   :用Array函数赋值给Arr2。Array 函数返回一个包含数组的 Variant。语法Array(arglist)所需的 arglist 参数是一个用逗号隔开的值表,这些值用于给 Variant 所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0 的数组。使用 Array 函数创建的数组的下界受 OptionBase 语句指定的下界的决定,默认为0。IsArray 函数返回 Boolean 值,指出变量是否为一个数组。语法IsArray(varname)必要的 varname 参数是一个指定变量的标识符。如果变量是数组,则 IsArray 返回 True;否则返回 False。对于包含数组的 variant 表达式来说,IsArray 尤为有用。4、MsgBox “Arr1 是否为数组: ” &IsArray(Arr1)   :用消息框显示Arr1是否为数组。 第1.21例 IsNumeric函数一、题目:要求编写一段代码,运用IsNumeric函数,返回一个变量是否为一个数值。二、代码:Sub 示例_1_21()     Dimbl,bl1     bl=530.25        MsgBox"变量 bl  是否为数值: "&  IsNumeric(bl)        bl1="4500Cm"       MsgBox"变量bl1  是否为数值: "&  IsNumeric(bl1)  EndSub三、代码详解1、Sub 示例_1_21():宏程序的开始语句。宏名为示例_1_21。2、Dimbl,bl1    :声明变量bl,bl1为可变型变量。3、bl=530.25 :把数值530.25赋给变量bl。4、MsgBox  "变量 bl  是否为数值: "&  IsNumeric(bl)   :用消息框显示IsNumeric函数判断的变量bl是否为数值,返回True。5、bl1="4500Cm" :把字符串“4500Cm”赋给变量bl1。4、MsgBox  "变量 bl1  是否为数值: "&  IsNumeric(bl1)   :用消息框显示IsNumeric函数判断的变量bl1是否为数值,返回False。 IsNumeric 函数返回 Boolean 值,返回变量是否为一个数值。 IsNumeric(expression)必要的 expression 参数是一个 Variant,包含数值表达式或字符串表达式。 第1.22例 Join函数一、题目:要求编写一段代码,运用Join函数,通过连接某个数组中的多个子字符串而创建的一个字符串。二、代码:Sub 示例_1_022()    Dimss    ss=Array("一月","二月","三月")    [A1]=Join(ss,”,”)EndSub三、代码详解1、Sub 示例_1_022():宏程序的开始语句。宏名为示例_1_022。2、Dimss    :声明变量ss为可变型变量。3、ss=Array("一月","二月","三月") :把Array函数得到的一维数组赋给变量ss。4、[A1]=Join(ss,”,”)   :把数组ss的各个元素用逗号连接起来赋给A1单元格。返回”一月,二月,三月”;如果省略分隔符 [A1]=Join(ss)  则用空格来分隔,返回”一月 二月 三月”;如果分隔符是零长度字符串("")[A1]=Join(ss,””) 则没有分隔符了,返回”一月二月三月”。 Join函数返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。Join(sourcearray[,delimiter]) Join函数语法有如下命名参数:sourcearray     必需的。包含被连接子字符串的一维数组。delimiter 可选的。在返回字符串中用于分隔子字符串的字符。如果忽略该项,则使用空格("")来分隔子字符串。如果delimiter是零长度字符串(""),则列表中的所有项目都连接在一起,中间没有分隔符。 第1.23例 LBound和 UBound函数一、题目:要求编写一段代码,运用LBound函数,返回数组的指定维数的最小可用下界;运用UBound函数,返回数组的指定维数的最大可用上界。二、代码:Sub 示例_1_023()    DimArr(1To10,5To15,10To20)        DimArr1(10)    [a1]="数组变量:Arr(1To10,5To15,10To20)"    [a2]="数组变量:Arr1(10)"    [a3]="LBound(Arr,1)  返回 ":[b3]=LBound(Arr,1)    [c3]="UBound(Arr,1)  返回 ":[d3]=UBound(Arr,1)    [a4]="LBound(Arr,3)  返回 ":[b4]=LBound(Arr,3)    [c4]="UBound(Arr,3)  返回 ":[d4]=UBound(Arr,3)    [a5]="LBound(Arr1)    返回 ":[b5]=LBound(Arr1)       [c5]="UBound(Arr1)  返回 ":[d5]=UBound(Arr1)EndSub三、代码详解1、Sub 示例_1_023():宏程序的开始语句。宏名为示例_1_023。2、DimArr(1To10,5To15,10To20)  :声明Arr为3维数组变量。3、DimArr1(10)  :声明Arr1为1维数组变量。4、[a1]="数组变量:Arr(1To10,5To15,10To20)"  :把字符串赋给单元格A1。5、[a2]="数组变量:Arr1(10)"  :把字符串赋给单元格A2。6、[b3]=LBound(Arr,1)  :运用LBound函数,返回数组Arr的第1维的最小可用下界,返回1,赋给单元格B3。7、[d3]=UBound(Arr,1)  :运用UBound函数,返回数组Arr的第1维的最大可用上界,返回10,赋给单元格D3。8、[b4]=LBound(Arr,3)  :运用LBound函数,返回数组Arr的第3维的最小可用下界,返回10,赋给单元格B4。9、[d4]=UBound(Arr,3)  :运用UBound函数,返回数组Arr的第3维的最大可用上界,返回20,赋给单元格D4。10、[b5]=LBound(Arr1)  :运用LBound函数,返回数组Arr1的最小可用下界,返回0或者1,要取决于OptionBase的设置,默认为0。11、[d5]=UBound(Arr1)  :运用UBound函数,返回数组Ar1r的最大可用上界,返回10,赋给单元格D5。 LBound 函数返回一个 Long 型数据,其值为数组指定维可用的最小下界。LBound(arrayname[,dimension])LBound 函数的参数:arrayname      必需的。数组变量的名称,遵循标准的变量命名约定。dimension       可选的;Variant(Long)。指定返回哪一维的下界。1 表示第一维,2 表示第二维,如此类推。如果省略 dimension,就认为是 1。 UBound 函数返回一个 Long 型数据,其值为指定的数组维可用的最大上界。 UBound(arrayname[,dimension])UBound 函数的语法包含下面部分: arrayname      必需的。数组变量的名称,遵循标准变量命名约定。dimension       可选的;Variant(Long)。指定返回哪一维的上界。1 表示第一维,2 表示第二维,如此等等。如果省略 dimension,就认为是 1。说明UBound 函数与 LBound 函数一起使用,用来确定一个数组的大小。LBound 用来确定数组某一维的上界。 第1.24例 LCase和UCase 函数一、题目:要求编写一段代码,运用LCase 函数来将某字符串转成全部小写,并运用UCase 函数再将它转成全部大写。二、代码:Sub 示例_1_024()     DimDxzfc$,XXzfc$     DXzfc="HELLOSHANGHAIEXPO2010"    ' 大写的字符串。     XXzfc=Lcase(DXzfc)    ' 返回 "helloshanghaiexpo2010"。     DXzfc=Ucase(XXzfc)    ' 返回 "HELLOSHANGHAIEXPO2010"。EndSub三、代码详解1、Sub 示例_1_024():宏程序的开始语句。宏名为示例_1_024。2、Dim  Dxzfc$,XXzfc$  :声明 Dxzfc,XXzfc为字符串变量。 $是String字符串数据类型的类型声明字符,其它有类型声明字符的数据类型还有:整型          Integer    %长整型        Long       &单精度浮点型  Single     !双精度浮点型  Double     #变比整型      Currency   @ 3、DXzfc="HELLOSHANGHAIEXPO2010"  :把大写的字符串赋给字符串变量DXzfc。4、XXzfc=Lcase(DXzfc)  :运用LCase 函数把大写字符串全部转成小写赋给字符串变量XXzfc。5、DXzfc=Ucase(XXzfc)  :运用UCase 函数把小写字符串全部转成大写赋给字符串变量DXzfc。 LCase 函数返回转成小写的 String。 LCase(string)必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。说明只有大写的字母会转成小写;所有小写字母和非字母字符保持不变。 UCase 函数返回 Variant(String),其中包含转成大写的字符串。 UCase(string)必要的 string 参数为任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。说明只有小写的字母会转成大写;原本大写或非字母之字符保持不变。 第1.25例 Left 和 Right 函数一、题目:要求编写一段代码,运用Left 函数来得到某字符串最左边的几个字符,运用Right 函数来得到某字符串最右边的几个字符。二、代码: Sub 示例_1_025()     DimRYzfc$,Myzfc$     RYzfc="HELLO SHANGHAI EXPO2010"        Myzfc=Left(RYzfc,5)         Myzfc=Left(RYzfc,14)        Myzfc=Right(RYzfc,4)    'EndSub三、代码详解1、Sub 示例_1_025():宏程序的开始语句。宏名为示例_1_025。2、Dim  RYzfc$,Myzfc$  :声明 RYzfc,Myzfc为字符串变量。3、RYzfc="HELLOSHANGHAIEXPO2010"  :把字符串赋给字符串变量RYzfc。4、Myzfc=Left(RYzfc,5) :运用Left 函数从RYzfc取最左边的5个字符并赋给Myzfc变量,返回 "HELLO"。5、Myzfc=Left(RYzfc,14) :从RYzfc取最左边的14个字符并赋给Myzfc变量,返回 "HELLOSHANGHAI"。6、Myzfc=Right(RYzfc,4) :从RYzfc取最右边的4个字符并赋给Myzfc变量,返回 "2010"。     Left 函数返回 Variant(String),其中包含从字符串左边算起指定数量的字符。 Left(string,length)Left 函数的语法有下面的命名参数: string      必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返回 Null。length     必要参数;为 Variant(Long)。数值表达式,指出将返回多少个字符。如果为0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。 Right 函数返回 Variant(String),其中包含从字符串右边取出的指定数量的字符。 Right(string,length)Right 函数的语法具有下面的命名参数: string      必要参数。字符串表达式,从中最右边的字符将被返回。如果 string 包含 Null,将返回 Null。length     必要参数;为 Variant(Long)。为数值表达式,指出想返回多少字符。如果为0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。 第1.26例 Len 函数一、题目:要求编写一段代码,运用Len 函数来得到指定字符串的长度。二、代码:Sub 示例_1_026()     DimRyzfc$,Mycdu     RYzfc="HELLO SHANGHAI EXPO2010"        Mycdu=Len(RYzfc)    EndSub三、代码详解1、Sub 示例_1_026():宏程序的开始语句。宏名为示例_1_026。2、Dim  RYzfc$,Mycdu  :声明 RYzfc为字符串变量,Mycdu为可变型变量。3、RYzfc="HELLOSHANGHAIEXPO2010"  :把字符串赋给字符串变量RYzfc。4、Mycdu=Len(RYzfc) :运用Len 函数来得到字符串RYzfc的长度,返回 24。        Len 函数返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。 Len(string|varname)Len 函数的语法有下面这些参数: string      任何有效的字符串表达式。如果 string 包含 Null,会返回 Null。Varname  任何有效的变量名称。如果 varname 包含 Null,会返回 Null。如果 varname 是Variant,Len 会视其为 String 并且总是返回其包含的字符数。 第1.27例 LTrim、RTrim与 Trim 函数一、题目:要求编写一段代码,分别运用这三个函数来返回没有前导空白 (LTrim)、尾随空白 (RTrim) 或前导和尾随空白 (Trim)的指定字符串。二、代码:Sub 示例_1_027()     DimZDzfc$,CJzfc$     ZDzfc="  <-裁剪字符串->  "    ' 设置字符串初值。     CJzfc=LTrim(ZDzfc)    '返回 "<-裁剪字符串->"。     CJzfc=RTrim(ZDzfc)    '返回 "<-裁剪字符串->"。     CJzfc=Trim(ZDzfc)    '返回 "<-裁剪字符串->"。EndSub三、代码详解1、Sub 示例_1_027():宏程序的开始语句。宏名为示例_1_027。2、Dim  ZDzfc$,CJzfc$  :声明 RYzfc、CJzfc为字符串变量。3、ZDzfc="  <-裁剪字符串->  "    :把指定的字符串赋给字符串变量ZDzfc。4、CJzfc=LTrim(ZDzfc) :   运用LTrim 函数裁去左边的空白,把结果赋给变量CJzfc,返回 "<-裁剪字符串->"。5、CJzfc=RTrim(ZDzfc) :   运用RTrim 函数裁去右边的空白,把结果赋给变量CJzfc,返回"<-裁剪字符串->"。6、CJzfc=Trim(ZDzfc) :   运用Trim 函数裁去左右两边的空白,把结果赋给变量CJzfc,返回 "<-裁剪字符串->"。 LTrim、RTrim与 Trim 函数返回 Variant(String),其中包含指定字符串的拷贝,没有前导空白 (LTrim)、尾随空白 (RTrim) 或前导和尾随空白 (Trim)。 LTrim(string)RTrim(string)Trim(string) 必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。 第1.28例 Mid 函数一、题目:要求编写一段代码,用Mid 函数来返回某个字符串中的几个字符。二、代码:Sub 示例_1_028()     DimMyzfc$,qmzfc$,mwzfc$,zjzfc$     Myzfc="HELLO SHANGHAI EXPO2010"        qmzfc=Mid(Myzfc,1,5)    ' 返回 "HELLO"。     mwzfc=Mid(Myzfc,21,4)    ' 返回 "2010"。     zjzfc=Mid(Myzfc,7)    ' 返回 "SHANGHAIEXPO2010"。EndSub三、代码详解1、Sub 示例_1_028():宏程序的开始语句。宏名为示例_1_028。2、DimMyzfc$,qmzfc$,mwzfc$,zjzfc$  :声明变量均为字符串变量。3、Myzfc="HELLOSHANGHAIEXPO2010"     :把指定的字符串赋给字符串变量Myzfc。4、qmzfc=Mid(Myzfc,1,5)  :   运用Mid 函数从左边第一个字符开始取5个字符,把结果赋给变量qmzfc,返回 "HELLO"。如果函数第2个参数超过第一个参数的字符数,Mid 将返回零长度字符串 ("")。5、mwzfc=Mid(Myzfc,21,4)  :   运用Mid 函数从左边第21个字符开始取4个字符,把结果赋给变量mwzfc,返回 "2010"。6、zjzfc=Mid(Myzfc,7)  :   运用Mid 函数从左边第7个字符开始取直到最后的所有的字符,把结果赋给变量zjzfc,返回 "SHANGHAIEXPO2010"。这里函数第3个参数省略了,表示从第2个参数开始直到最后所有的字符。 Mid 函数返回 Variant(String),其中包含字符串中指定数量的字符。 Mid(string,start[,length])Mid 函数的语法具有下面的命名参数: string      必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null。start 必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ("")。length     可选参数;为 Variant(Long)。要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。 第1.29例 Month 和 MonthName函数一、题目:要求编写一段代码,用Month 函数来返回某个日期的月份数,用MonthName函数返回这个月份的字符串。二、代码:Sub 示例_1_029()     Dimrq,Yuef     rq=#2008-8-12#        Yuef=Month(rq)        MsgBoxMonthName(yuef)  EndSub三、代码详解1、Sub 示例_1_029():宏程序的开始语句。宏名为示例_1_029。2、Dimrq,Yuef  :声明变量均为可变型变量。3、rq=#2008-8-12#      :把指定的日期赋给变量rq。4、Yuef=Month(rq)  :   运用Month 函数得到指定日期的月份,把结果赋给变量Yuef,返回月份的值为 8。5、MsgBoxMonthName(yuef) :用消息框返回MonthName函数得到的这个月份的字符串“八月”。 Month 函数返回一个 Variant(Integer),其值为 1 到 12 之间的整数,表示一年中的某月。 Month(date)必要的 date 参数,可以是任何能够表示日期的 Variant、数值表达式、字符串表达式或它们的组合。如果 date 包含 Null,则返回 Null。 MonthName函数 返回一个表示指定月份的字符串。 MonthName(month[,abbreviate])MonthName函数语法有如下几部分: month     必需的。月份的数值表示。例如一月是1,二月是2,等等。abbreviate       可选的。Boolean值,表示月份名是否缩写。如果忽略,缺省值为False,表明月份名不能被缩写。 第1.30例 MsgBox 函数一、题目:要求编写一段代码,用MsgBox 函数来显示一个具有“是”及“否”按钮的对话框,并根据用户对于消息框的不同选择进行相关的操作。二、代码:Sub 示例_1_030()     DimMsg,An,Bt,Yhhy     Msg="你要继续吗 ?"        An=vbYesNo+vbCritical+vbDefaultButton1        Bt="MsgBox 示例"    ' 定义标题。     Yhhy=MsgBox(Msg,An,Bt)     IfYhhy=vbYesThen    ' 用户按下“是”。     MsgBox"你按下的是“是”按钮。"    ' 完成某操作。     Else    ' 用户按下“否”。        MsgBox"你按下的是“否”按钮。"    ' 完成某操作。     EndIfEndSub三、代码详解1、Sub 示例_1_030():宏程序的开始语句。宏名为示例_1_030。2、DimMsg,An,Bt,Yhhy  :声明变量均为可变型变量。3、Msg="你要继续吗 ?"      :把指定的信息赋给变量Msg。       4、An=vbYesNo+vbCritical+vbDefaultButton1      :把指定的按钮赋给变量An。这句也可写为An=4+16,第3个参数是默认的,为0,可省略。5、Bt="MsgBox 示例"  :把消息框的标题赋给变量Bt。6、Yhhy=MsgBox(Msg,An,Bt) :把MsgBox函数的返回值(即用户按了哪个按钮)赋给变量Yhhy。7、IfYhhy=vbYesThen  :  如果用户按下“是”,那么执行下面的语句;8、MsgBox"你按下的是“是”按钮。"    用MsgBox函数返回信息,因为不需要函数的返回值,所以可以去掉函数参数的括号。 MsgBox 函数在对话框中显示消息,等待用户单击按钮,并返回一个 Integer ,说明用户单击了哪一个按钮。 MsgBox(prompt[,buttons][,title][,helpfile,context]) MsgBox 函数的语法具有以下几个命名参数: Prompt    必需的。字符串表达式,作为显示在对话框中的消息。prompt 的最大长度大约为1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行,则可以在每一行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或是回车与换行符的组合 (Chr(13)&Chr(10)) 将各行分隔开来。Buttons   可选的。数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则 buttons 的缺省值为 0。Title 可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。Helpfile可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 helpfile,则也必须提供 context。Context   可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 context,则也必须提供 helpfile。 设置值buttons 参数有下列设置值:常数                       值    描述vbOKOnly              0     只显示 OK 按钮。VbOKCancel          1     显示 OK 及 Cancel 按钮。VbAbortRetryIgnore      2     显示 Abort、Retry 及 Ignore 按钮。VbYesNoCancel             3     显示 Yes、No 及 Cancel 按钮。VbYesNo                  4       显示 Yes 及 No 按钮。VbRetryCancel            5       显示 Retry 及 Cancel 按钮。VbCritical             16      显示 CriticalMessage 图标。VbQuestion         32      显示 WarningQuery 图标。VbExclamation           48      显示 WarningMessage 图标。VbInformation            64      显示 InformationMessage 图标。vbDefaultButton1   0     第一个按钮是缺省值。vbDefaultButton2   256  第二个按钮是缺省值。vbDefaultButton3   512  第三个按钮是缺省值。vbDefaultButton4   768  第四个按钮是缺省值。  vbApplicationModal      0     应用程序强制返回;应用程序一直被挂起直到用户对消息框作出响应才继续工作。vbSystemModal             4096       系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。vbMsgBoxHelpButton    16384     将Help按钮添加到消息框VbMsgBoxSetForeground     65536     指定消息框窗口作为前景窗口vbMsgBoxRight             524288    文本为右对齐vbMsgBoxRtlReading    1048576  指定文本应为在希伯来和阿拉伯语系统中的从右到左显示 第一组值 (0–5) 描述了对话框中显示的按钮的类型与数目;第二组值 (16,32,48,64) 描述了图标的样式;第三组值 (0,256,512) 说明哪一个按钮是缺省值;第四组值 (0,4096) 则决定消息框的强制返回性。将这些数字相加以生成 buttons 参数值的时候,只能由每组值取用一个数字。第五组值 (16384,65536,524288,1048576)是附加选项。 注意 这些常数都是 VisualBasicforApplications(VBA) 指定的。结果,可以在程序代码中到处使用这些常数名称,而不必使用实际数值。 返回值常数               值    描述vbOK              1     确定vbCancel 2     取消vbAbort          3     放弃vbRetry           4     重试vbIgnore 5     忽略vbYes              6     是vbNo              7     否 说明在提供了 helpfile 与 context 的时候,用户可以按 F1(Windows)orHELP(Macintosh) 来查看与 context 相应的帮助主题。像 MicrosoftExcel 这样一些主应用程序也会在对话框中自动添加一个 帮助 按钮。如果对话框显示 取消 按钮,则按下 ESC 键与单击 取消 按钮的效果相同。如果对话框中有 Help 按钮,则对话框中提供有上下文相关的帮助。但是,直到其它按钮中有一个被单击之前,都不会返回任何值。注意 如果还要指定第一个命名参数以外的参数,则必须在表达式中使用 MsgBox。为了省略某些位置参数,必须加入相应的逗号分界符。 第1.31例 Now函数一、题目:  要求编写一段代码,使用 Now 函数返回系统当前的日期与时间。二、代码:Sub 示例_1_031()    Dimjtjt=Now   EndSub三、代码详解1、Sub 示例_1_031():宏程序的开始语句。宏名为示例_1_031。2、Dimjt  :声明变量jt为可变型变量。3、jt=Now       :把系统当前的日期与时间赋给变量jt。注意:Now函数里包含时间,如果只需要日期,可用Date函数。Date函数请见第1_05例。 Now 函数返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。  第1.32例 RGB函数一、题目:  要求编写一段代码,使用 RGB 函数返回A1单元格的底色和字体的 RGB 色彩值。二、代码:Sub 示例_1_032()    Dimhs,I,RGBValue    hs=RGB(255,255,0)       I=35       RGBValue=RGB(I,64+I,128+I)        Cells(5,1).Interior.Color=RGBValue    Cells(5,1).Font.Color=hsEndSub三、代码详解1、Sub 示例_1_032():宏程序的开始语句。宏名为示例_1_032。2、Dimhs,I,RGBValue   :声明变量均为可变型变量。3、hs=RGB(255,255,0)  :把红绿蓝色彩空间的色彩值赋给变量hs(黄色)。4、I=35  :把35赋给变量I。5、RGBValue=RGB(I,64+I,128+I) :把不变量I作为偏移量计算得到的红绿蓝色彩空间中的RGB(35,99,163)颜色赋给变量RGBValue。6、Cells(5,1).Interior.Color=RGBValue :把颜色赋给单元格A5的底色。7、Cells(5,1).Font.Color=hs :把黄色赋给单元格A5的字体。 RGB函数用来表示一个RGB颜色值。 RGB(red,green,blue)RGB函数的参数red 必要的参数,Variant(Integer),数值范围从0~255,表示颜色的红色成分green 必要的参数,Variant(Integer),数值范围从0~255,表示颜色的绿色成分Blue  必要的参数,Variant(Integer),数值范围从0~255,表示颜色的蓝色成分 注意:使用RGB函数设置颜色受系统限制,如果系统只能显示16色,那么RGB函数就不能设置出更多的颜色。 第1.33例 Rnd函数一、题目:  要求编写一段代码,使用 Rnd 函数随机生成一个 1 到 100 的随机整数。二、代码:Sub 示例_1_033()    Dimx%    Forx=1To10        Cells(x,2)=Int((100*Rnd)+1)   ' 生成 1 到 100 之间的随机数值。NextxEndSub三、代码详解1、Sub 示例_1_033():宏程序的开始语句。宏名为示例_1_033。2、Dim x%   :声明变量x为整型变量。3、Forx=1To10  :x从1 到10进行循环。4、Cells(x,2)=Int((100*Rnd)+1) :把使用Rnd 函数产生的随机数乘100加1以后再取整得到的数值依次赋给B列单元格。 Rnd 函数返回一个包含随机数值的 Single。 Rnd[(number)]可选的 number 参数是 Single 或任何有效的数值表达式。返回值如果 number 的值是   Rnd 生成小于 0    每次都使用 number 作为随机数种子得到的相同结果。大于 0    序列中的下一个随机数。等于 0    最近生成的数。省略       序列中的下一个随机数。说明Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式。对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound-lowerbound+1)*Rnd+lowerbound)这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。 第1.34例 Round函数一、题目:  要求编写一段代码,使用 Round 函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。二、代码:Sub 示例_1_034()   DimZdz    Zdz=Round(5.235,2)  '返回5.24    Zdz=Round(5.225,2)  '返回5.22    Zdz=Round(2.5)   '返回2Zdz=Round(2.6)   '返回3EndSub三、代码详解1、Sub 示例_1_034():宏程序的开始语句。宏名为示例_1_034。2、Dim Zdz!   :声明变量Zdz为单精度浮点型变量。!是单精度浮点型的类型声明字符,其它类型声明字符请见第1_024例。3、Zdz=Round(5.235,2) :把指定数值5.235运用Round 函数按照小数点后面2位进行四舍五入运算的结果赋给变量Zdz,返回5.24。4、Zdz=Round(5.225,2) :把指定数值5.225运用Round 函数按照小数点后面2位进行四舍五入运算的结果赋给变量Zdz,返回5.22。请大家注意:这里的答案不准确!与我们运用工作表Round函数运算的结果不一样。其原因是VBA的Round 函数采用的是Banker舍入法,而不是算术舍入。按照Banker舍入规则,如果保留位数的下一位数字正好是5且其后没有其它的有效数字,则依保留位最后一位“偶舍奇入”的方法进行处理。所以应该用工作表函数来代替这个VBA函数:即用Application.Round(2.5)来代替Round(2.5)。 Round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。 Round(expression[,numdecimalplaces])Round函数有如下的参数: expression      必需的。要进行四舍五入运算的数值表达式。numdecimalplaces  可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。 第1.35例 Split 函数一、题目:  要求编写一段代码,运用 Split  函数返回一个一维数组。二、代码:Sub 示例_1_035()Dimx%,aa,ArrForx=1to5aa=aa&x&“,”Nextxaa=Left(aa,Len(aa)-1)Arr=Split(aa,”,”)EndSub三、代码详解1、Sub 示例_1_035():宏程序的开始语句。宏名为示例_1_035。2、Dim x% ,aa,Arr  :声明变量x为整型变量,其余两个为可变型变量。3、Forx=1To5  :x从1 到5进行循环。4、aa=aa&x&“,” :根据循环依次把变量x的值和逗号组成的字符串赋给变量aa。返回”1,2,3,4,5,”5、aa=Left(aa,Len(aa)-1)  :因为字符串aa最后多了一个逗号,所以运用Left 和Len函数去除这个逗号以后再赋给变量aa。返回”1,2,3,4,5”6、Arr=Split(aa,”,”) :运用 Split  函数返回一个一维数组赋给变量Arr(0to4)。注意:这里是以0为下标的一维数组。 Split函数返回一个下标从零开始的一维数组,它包含指定数目的子字符串。 Split(expression[,delimiter[,limit[,compare]]])Split函数语法有如下命名参数:expression      必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符("")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。limit       可选的。要返回的子字符串数,–1表示返回所有的子字符串。compare  可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。设置值compare参数的设置值如下:常数                    值  描述vbUseCompareOption    –1  用OptionCompare语句中的设置值执行比较。vbBinaryCompare        0  执行二进制比较。vbTextCompare            1  执行文字比较。vbDatabaseCompare        2  仅用于MicrosoftAccess。基于您的数据库的信息执行比较。 第1.36例 Sqr 函数一、题目:  要求编写一段代码,运用 Sqr  函数返回指定参数的平方根。二、代码:Sub 示例_1_036()    DimGou&,Gu&,Xian&,Pfg    Gou=3    Gu=4    Xian=Sqr(Gou*Gou+Gu*Gu)Pfg=Sqr(-4)  EndSub三、代码详解1、Sub 示例_1_036():宏程序的开始语句。宏名为示例_1_036。2、DimGou&,Gu&,Xian&,Pfg  :声明变量Gou、Gu、Xian为双精度浮点型变量,& 双精度浮点型变量Double的类型声明字符,其它有类型声明字符的数据类型请见第1.24例:Pfg为可变型变量。3、Gou=3  :把3赋给变量Gou。4、Gu=4  :把4赋给变量Gu。5、Xian=Sqr(Gou*Gou+Gu*Gu)  :运用Sqr函数计算出25的平方根5,赋给变量Xian;6、Pfg=Sqr(-4)  :生成一个运行时错误(负数不能用此函数开平方根)。注意工作表函数中也有相同的函数,但是名字是SQRT。 Sqr 函数返回一个 Double,指定参数的平方根。 Sqr(number)必要的 number 参数 number 是 Double 或任何有效的大于或等于 0 的数值表达式。 第1.37例 Str 和CStr 函数一、题目:  要求编写一段代码,运用 Str  函数或者CStr 函数来将一个数字转成字符串。二、代码:Sub 示例_1_037()    DimZfc$    Zfc=Str(459)MsgBoxLen(Zfc)Zfc=Str(-459.65)    Zfc=CStr(459)MsgBoxLen(Zfc)Zfc=CStr(-459.65)EndSub三、代码详解1、Sub 示例_1_037():宏程序的开始语句。宏名为示例_1_037。2、DimZfc$  :声明变量Zfc 为字符串变量,$为字符串变量String的类型声明字符,其它有类型声明字符的数据类型请见第1.24例。3、Zfc=Str(459) :用Str 函数将数字转换成字符串,返回” 459”;注意数字前面会保留一个空位来表示正负。4、MsgBoxLen(Zfc) :用消息框显示变量Zfc的长度,返回4;说明数字前面有一个空位。5、Zfc=Str(-459.65) :用Str 函数将数字转换成字符串,返回”- 459.65”;因为是负数有一个负号,所以没有另外的空位了。如果用消息框显示变量Zfc的长度,返回7。6、Zfc=CStr(459) :用CStr 函数将数字转换成字符串,返回”459”;注意数字前面没有一个空位。7、MsgBoxLen(Zfc) :用消息框显示变量Zfc的长度,返回3;说明数字前面没有空位。 Str 函数返回代表一数值的字符串 Variant(String)。 Str(number)必要的 number 参数为一 Long,其中可包含任何有效的数值表达式。说明当一数字转成字符串时,总会在前头保留一空位来表示正负。如果 number 为正,返回的字符串包含一前导空格暗示有一正号。使用 Format 函数可将数值转成必要的格式,如日期、时间、货币或其他用户自定义格式。与 Str 不同的是,Format 函数不包含前导空格来放置 number 的正负号。注意 Str 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,国际性的应用程序),可使用 CStr 将数字转成字符串。 CBool等类型转换函数每个函数都可以强制将一个表达式转换成某种特定数据类型。语法CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)必要的 expression 参数可以是任何字符串表达式或数值表达式。 CStr 函数可强制将一个表达式转换成字符串,返回代表一数值的字符串 Variant(String)。 CStr(expression)CStr String    依据 expression 参数返回一个字符串。 第1.38例 Time  函数一、题目:  要求编写一段代码,运用 Time 函数来返回系统当前的时间。二、代码:Sub 示例_1_038()    DimXtdqsj,sj    Xtdqsj=Time   '。    Sj=#12:10:00#    Time=sjEndSub三、代码详解1、Sub 示例_1_038():宏程序的开始语句。宏名为示例_1_038。2、Dim Xtdqsj,sj   :声明变量Xtdqsj,sj 均为可变型变量。3、Xtdqsj=Time  :用Time 函数返回系统当前的时间赋给变量Xtdqsj。4、sj=#12:10:00# :把时间赋给变量sj。5、Time=sj :注意这里的Time不是Time 函数,而是Time语句,如果要将系统时间设置为sj的内容就要用Time语句。 Time 函数返回当前系统的时间Variant(Date)。 Time 为了设置系统时间,需使用 Time 语句。 第1.39例 TimeSerial 和TimeValue 函数一、题目:  要求编写一段代码,运用 TimeSerial 函数来返回已知时分秒的时间,运用 TimeValue 函数来将字符串转换为时间。二、代码:Sub 示例_1_039()     Dimsj,sj1     sj=TimeSerial(19,25,27)   sj1=TimeValue("4:35:17PM")   EndSub 三、代码详解1、Sub 示例_1_039():宏程序的开始语句。宏名为示例_1_039。2、Dim sj,sjs   :声明变量sj,sj1 均为可变型变量。3、sj=TimeSerial(19,25,27) :已知具体的小时、分、秒,运用 TimeSerial 函数来得到时间的值,返回#下午 07:25:27# 的时间表达式。4、sj1=TimeValue("4:35:17PM"):已知表示时间的字符串,运用 TimeValue 函数来将此字符串转换为时间,返回#下午 04:35:17#。 TimeSerial 函数返回一个 Variant(Date),包含具有具体时、分、秒的时间。 TimeSerial(hour,minute,second)TimeSerial 函数语法有下列的命名参数: hour     必要;Variant(Integer)。其值从 0(12:00A.M.) 到 23(11:00P.M.),或一数值表达式。minute    必要;Variant(Integer)。任何数值表达式。second     必要;Variant(Integer)。任何数值表达式。说明为了指定一个时刻,如 11:59:59,TimeSerial 的参数取值应在正常范围内;也就是说,钟点应介于 0-23 之间,而分钟与秒应介于 0-59 之间。但是,当一个数值表达式表示某时刻之前或其后的时、分钟或秒数时,也可以为每个使用这个数值表达式的参数指定相对时间。以下示例中使用了表达式代替绝对时间数。TimeSerial 函数返回中午之前六小时 (12-6) 又十五分钟 (-15) 的时间,即 5:45:00A.M.TimeSerial(12-6,-15,0)当任何一个参数的取值超出正常范围时,它会适时进位到下一个较大的时间单位。例如,如果指定了 75(75 分钟),则这个时间被解释成一小时又十五分。如果一个参数值超出 -32,768 到 32,767 的范围,就会导致错误发生。如果三个参数指定的时间会使日期超出可接受的日期范围,则亦会导致错误发生。 TimeValue 函数返回一个包含时间的 Variant(Date)。 TimeValue(time)必要的 time 参数,通常是一个字符串表达式,表示 0:00:00(12:00:00A.M.) 到 23:59:59(11:59:59P.M.) 之间的时刻。但是,time 也可以是表示在同一时间范围取值的任何其它表达式。如果 time 包含 Null,则返回 Null。说明可以使用 12 小时制或 24 小时制的时间格式。例如,”2:24PM” 和 "14:24" 均是有效的 time 表达式。如果 time 参数包含日期信息,TimeValue 将不会返回它。但是,若 time 包含无效的日期信息,则会导致错误发生。 第1.40例 Timer 函数一、题目:  要求编写一段代码,运用 Timer 函数来计算本代码运行所化的时间。二、代码:Sub 示例_1_040()    Dimt,i&,a    t=Timer    Fori=1To1000000        a=a+i    Nexti    MsgBoxTimer-t&"秒"    ‘返回0.046875秒EndSub三、代码详解1、Sub 示例_1_040():宏程序的开始语句。宏名为示例_1_040。2、Dim t,i&,a  :声明变量t,a 均为可变型变量,i为长整型变量。3、t=Timer :把系统的时间赋给变量t。4、Fori=1To1000000 :从1 到 1000000循环。5、a=a+i :把a+i的值赋给变量a,实际上是一个累加的过程。6、MsgBoxTimer-t&"秒" :利用消息框显示现在的时间减去前面设置的时间,得到运行整个代码所化的时间。 Timer 函数返回一个 Single,代表从午夜开始到现在经过的秒数。 Timer说明MicrosoftWindows中,Timer函数返回一秒的小数部分。WelcomeToDownload!!!欢迎您的下载,资料仅供参考!-可编辑修改-
本文档为【vba常用代码大全】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
金水文库
鑫淼网络科技有限公司主要经营:PPT设计 、课件制作,软文策划、合同简历设计、计划书策划案、各类模板等。公司秉着用户至上的原则服务好每一位客户
格式:doc
大小:191KB
软件:Word
页数:61
分类:
上传时间:2020-04-14
浏览量:28