云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > EXcel-VBA基础入门 - 图文

EXcel-VBA基础入门 - 图文

  • 62 次阅读
  • 3 次下载
  • 2026/4/28 2:19:03

如何声明数组?

可以用Dim语句或者Public语句声明数组。

Dim/Public 数组名 (a to b) as 数据类型 a 和b 是数组中元素的个数,数组元素素最小值为a,最大值为b,元素个数为(b-a+1)个,当然,你也可以直接输入个数,此时默认最小索引号为0。 如: Dim myarr(5) As Integer 这个数组的最小元素索引号为0,元素个数为6。

上面定义的只是一维数组,你还可以定义二维、三维、四维??. 如: Dim myarr(1 to 5,1 to 10) As Integer 这就是一个二维数组,元素个数为5*10=50个。 在程序设计的过程中,定义数组的时候我们可能不能确定数组的元素个数,对数组进行声明后,可以在运行时用ReDim语句重新指定数组的大小。

------------------------------------------------------- 如何知道该定义变量为何种类型?

这就要根据你的实际需要,再结合各种数据的的范围来看。 在编写程序的过程中,选择需要存储空间尽量小的数据类型来保存所需要的数据,这是很有必要的,虽然我们可以把变量设为Variant型,但上面我说了,定义变量类型会提升程序的运行速度,这也是VBA提供各种数据类型存储空间的原因。 该定义变量为哪一种类型?看一看它的长度。

定义变量的类型时,除了考虑长度外,还要考虑变量的值的类型。 Sub mysub()

Dim a As Integer

a = \我在学习VBA变量\ MsgBox a End Sub VBA函数

用Excel的时间相信你也不短了,什么是函数就不再细说了。

与其他编程语言一样,VBA含有各种内置的函数。很多的VBA函数都与Excel的工作表函数类似,或者一样。

使用VBA函数的的方式与使用工作表公式中函数的方式相同,在VBA代码中,我们可以使用很多Excel的工作表函数,例如Sum,Abs等。 例如:

复制内容到剪贴板 代码:

Sub myabs()

a = InputBox(\请输入数值:\提示\ labs = Abs(a)

MsgBox \你输入的值的绝对值为:\ End Sub

这是一个求绝对值的过程,通过InputBox提示用户输入一个数值给变量a,再用Abs函数求出变量的绝对值,最后通过MsgBox返回结果。

InputBox同MsgBox函数一样,是很常用的函数

但并不是所有的工作表函数在VBA里都可以直接调用,但由于WorksheetFunction对象包含在Application对象中,如果我们要在VBA语句里使用某个不能直接调用的工作表函数,只需要在函数名称前加上Application.WorksheetFunction语语即可。 如:在VBA里使用counta函数则代码为: application.worksheetfunction.counta(range(\控制程序的流程,有判断、分支和循环三种语句。 接下来我们将一样一样地进行讲解。

===================== 程序流程控制—>if语句

==================== 1、if—then语句

这个句式相当于中文里面的“如果.......那么”。 格式:

if 逻辑表达式 then

语句块 end if

解释:如果逻辑表达式的结果为true,则执行语句块里的所有语句,否则执行end if后面的语句。语句块可以是一句指令或多条指令,也可以调用一个或多个过程,当然,也可以为空,就是没有语句。

如:要判断A1单元格是否已输入内容,设计程序: Sub test1()

If [a1] = \

MsgBox \单元格没有输入任何内容!\ End If End Sub

2、 if—then—else语句

这个语句相当于中文里面的“如果......那么......否则......”句式。 格式:

if 逻辑表达式 then

语句块1 else

语句块2 end if

解释:如果逻辑表达式的结果为true,则执行语句块1里的所有语句,如果逻辑表达式的结果为Flase则执行语句块2里的所有语句。

如:要判断A1单元格是否已输入内容,设计程序: Sub test2()

If [a1] = \

MsgBox \单元格没有输入任何内容!\ Else

MsgBox \单元格已经输入了内容!\ End If End Sub

3、if—then—elseif语句

这就相当于中文里面的若“如果?那么?否则如果?那么?否则”语句,当然,可以有多句“否则如果.......” 格式:

If 逻辑表达式1 Then

语句块1

ElseIf 逻辑表达式2 Then 语句块2

ElseIf 逻辑表达式3Then 语句块3 ? Else

语句块n End If

解释:若逻辑表达式1的结果为True,则执行语句块1,接着继续执行EndIf后面的语句;若逻辑表达式1的结果为False,则检查逻辑表达式2的结果,若为True则执行语句块2,接着继续执行EndIf后面的语句.......一直到所有结果的条件都不满足时,才执行Else后面的语句块n。 如:要判断A1单元格的数是否能被2、3、5其中之一整除,设计程序: Sub test3()

If [a1] = \

MsgBox \单元格没有输入任何内容!\ ElseIf [a1] Mod 2 = 0 Then

MsgBox \单元格的数能被2整除!\ ElseIf [a1] Mod 3 = 0 Then

MsgBox \单元格的数能被3整除!\ ElseIf [a1] Mod 5 = 0 Then

MsgBox \单元格的数能被5整除!\ Else

MsgBox \单元格的数不能被2、3、5其中之一整除!\ End If End Sub

程序流程控制——Select Case语句 Select Case语句同IF语句一样,也是条件判断的语句。它的功能也可以用IF语句来完成。但是,当程序的条件太多,用IF语句来判断的话就存在一些不足了,程序的执行效率等等。Select Case语句在执行的效率上,同IF语句相比,肯定是要快得多。 [Select Case语句的语法] Select Case 测试表达式 Case 条件表达式1 语句块1 Case 条件表达式2 语句块2

Case 条件表达式3 语句块3 ......

Case 条件表达式n 语句块n Case Else

语句块Else End Select.

当某个条件表达式与测试表达式相匹配时,则执行其后的语句块,否则执行Case Else后的语句块,然后结束Select Case块的执行。同IF语句一样,可以不要Case Else语句。

“如对A1单元格的学生成绩进行等级评定,小于等于30分的为差,30分到59分的为不及格,60分到79分的为及格,80分到89分的为良好,90到100分的为优秀。”用Select Case语句来解决就是:

复制内容到剪贴板 代码:

Sub test()

If [a1].Value = \

MsgBox \单元格没有输入数字。\ Exit Sub ' 退出程序 End If

Select Case [a1].Value Case 0 To 29 MsgBox \差\ Case 30 To 59

MsgBox \不及格\ Case 60 To 79

MsgBox \及格\ Case 80 To 89

MsgBox \良好\ Case Else

MsgBox \优秀\ End Select End Sub

需要补充一点的是,无论是IF语句还是Select Case语句, 都是可以进行嵌套的! 什么是循环?

这里我们指的循环是指重复地执行某项动作(语句块)。 我们来看一下For—next 的句式:

For 循环变量=初值 to 终值 step 步长 循环体1 [exit for] 循环体2

搜索更多关于: EXcel-VBA基础入门 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

如何声明数组? 可以用Dim语句或者Public语句声明数组。 Dim/Public 数组名 (a to b) as 数据类型 a 和b 是数组中元素的个数,数组元素素最小值为a,最大值为b,元素个数为(b-a+1)个,当然,你也可以直接输入个数,此时默认最小索引号为0。 如: Dim myarr(5) As Integer 这个数组的最小元素索引号为0,元素个数为6。 上面定义的只是一维数组,你还可以定义二维、三维、四维??. 如: Dim myarr(1 to 5,1 to 10) As In

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com