当前位置:   article > 正文

VBA入门详细代码讲解和示例_vba实例详解

vba实例详解

前言
我们平时在工作表单元格的公式中常常使用函数,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")  '返回69
    myNum2 = Asc("e")  '返回101
    [a1] = "myNum1= ": [b1] = myNum1
    [a2] = "myNum2= ": [b2] = myNum2
End Sub 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、代码详解
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。这里返回小写字母e的ASCII代码101。
5、[a1] = "myNum1= ": [b1] = myNum1:把字符串“myNum1= “赋给A1单元格,把变量myNum1的值赋给B1单元格。
6、[a2] = "myNum2= ": [b2] = myNum2:把字符串“myNum2= “赋给A2单元格,把变量myNum2的值赋给B2单元格。
7、End Sub:程序的结束语句,和“Sub示例_1_01()”相对应。

第1.2例 Chr函数
一、题目"":
  要求编写一段代码,运用Chr函数将ASCII值转换为对应的字符。
二、代码:

Sub 示例_1_02()
Dim myChar1$, myChar2$
myChar1 = Chr(69)    ' 返回 E。
myChar2 = Chr(101)    ' 返回 e。
[a1] = "myChar1= ": [b1] = myChar1
[a2] = "myChar2= ": [b2] = myChar2
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、代码详解
1、Sub 示例_1_02():宏程序的开始语句。
2、Dim myChar1 , m y C h a r 2 , myChar2 ,myChar2:变量myChar1和myChar2声明为字符串变量。
也可以写为 Dim myChar1 As String 。String 之字符码的范围是 0 到 255。字符集的前 128 个字符(0 到 127)对应于标准的 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、End Sub:程序的结束语句,和“Sub示例_1_02()”相对应。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

第1.3例 Choose函数
一、题目:
  要求编写一段代码,运用Choose函数根据指定数字选择对应的字符串。
二、代码:

Sub 示例_1_03()
       Dim Num%
       Num=2
       MsgBox  Choose(Num, "一月", "二月", "三月")
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5

三、代码详解
1、Sub 示例_1_03():宏程序的开始语句。宏名为示例_1_03。
2、Dim Num% :变量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()
       Dim jiaodu, zenge
       jiaodu = 1.3   
       zenge = 1 / Cos(jiaodu)   
        MsgBox  “角度为 ” & jiaodu & “的正割的值= ” & zenge
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、代码详解
1、Sub 示例_1_04():宏程序的开始语句。宏名为示例_1_04。
2、Dim jiaodu, 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()
       Dim myDate
       myDate = Date
MsgBox  “系统日期为 ” & myDate
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5

三、代码详解
1、Sub 示例_1_05():宏程序的开始语句。宏名为示例_1_05。
2、Dim myDate :变量myDate被指定为可变型数据类型。
3、myDate = Date :把系统日期的值赋给变量myDate。
Date函数返回系统当前的日期。
4、MsgBox “系统日期为 ” & myDate :利用MsgBox函数显示系统日期的值。

第1.6例 DateAdd函数
一、题目:
  要求编写一段代码,运用DateAdd函数显示返回一定间隔后的日期。
二、代码:

Sub 示例_1_06()
       Dim dyrq As Date   
       Dim jglx As String
       Dim n As Integer
       Dim Msg
       jglx = "m"    
       dyrq = InputBox("请输入一个日期")
       n = InputBox("输入增加月的数目:")
       Msg = "新日期: " & DateAdd(jglx, n, dyrq)
       MsgBox Msg
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

三、代码详解
1、Sub 示例_1_06():宏程序的开始语句。宏名为示例_1_06。
2、Dim dyrq As Date :变量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()
       Dim zdrq As Date   
       Dim Msg
       zdrq = InputBox("请输入一个日期:")
       Msg = "离开今天的天数: " & DateDiff("d", Now, zdrq)
       MsgBox Msg
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、代码详解
1、Sub 示例_1_07():宏程序的开始语句。宏名为示例_1_07。
2、Dim zdrq As Date :变量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()
       Dim zdrq As Date   
       Dim Msg   
       zdrq = InputBox("请输入一个日期:")
       Msg = "季度: " & DatePart("q", zdrq)
       MsgBox Msg
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、代码详解
1、Sub 示例_1_08():宏程序的开始语句。宏名为示例_1_08。
2、Dim zdrq As Date :变量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()
       Dim zdrq
       zdrq = DateSerial(2008, 8, 8)   
       MsgBox zdrq
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5

三、代码详解
1、Sub 示例_1_09():宏程序的开始语句。宏名为示例_1_09。
2、Dim zdrq :变量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()
   Dim zdrq
   zdrq = DateValue("August 8, 2008")   
   MsgBox zdrq
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5

三、代码详解
1、Sub 示例_1_010():宏程序的开始语句。宏名为示例_1_010。
2、Dim zdrq :变量zdrq声明为可变型数据类型。
3、zdrq = DateValue(“August 8, 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()
Dim zdrq
zdrq = #2008-12-8#
MsgBox zdrq & " 这天的日为: " & Day(zdrq)
End Sub
三、代码详解
1、Sub 示例_1_11():宏程序的开始语句。宏名为示例_1_11。
2、Dim zdrq :变量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()
       Dim wjm
       wjm
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/574920
推荐阅读
相关标签
  

闽ICP备14008679号