excel - VBA基础入门 - 图文(5)

2019-08-29 21:47

选择一个瓶子去装我们的油,一斤油,用一个瓶子刚好合适,当然,如果你只用一个茶杯去装,那也是不行的。

用数据来打比方,我们需要用变量来保存一个学生某学科考试成绩的分数,那么用Byte数据类型就可以了(它的范围是0——255),如果在这里使用Integer、Long、Single这些数据类型的话,就相当于我们用水桶,水缸去装那一斤菜油,只是对计算机存储空间的浪费,当然,如果你的值的范围超过了Byte的范围,那定义成Byte也是不行的。 定义变量的类型时,除了考虑长度外,还要考虑变量的值的类型。

买油的时候不管是用瓶子还是用水缸,反正都能装回来,但是如果你用麻袋能不能装那一斤油回来?

还是那句话,如果你没有定义变量类型或定义变量类型为Variant,聪明的计算机会先看你打的油是固体还是液体,是液体的话把麻袋扔在一边,给你弄口大缸子。但是如果你自己选择麻袋上街去买油,你还能不能把你的油带回来?

用数据来打比方,如果你定义了一个变量为Integer型,那你再用把学生姓名的字符串赋给它,行吗? 复制内容到剪贴板 代码:

Sub mysub()

Dim a As Integer

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

将这个过程提制到模块里,按F5运行它,看看是什么结果?尝试修改一下定义的数据类型,看看修改后的运行结果! 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函数一样,是很常用的函数,关于它的功能及用法,请用绝招:抹黑,按F1,

但并不是所有的工作表函数在VBA里都可以直接调用,但由于WorksheetFunction对象包含在Application对象中,如果我们要在VBA语句里使用某个不能直接调用的工作表函数,只需要在函数名称前加上Application.WorksheetFunction语语即可。 如:在VBA里使用counta函数则代码为:

application.worksheetfunction.counta(range(\

VBA里面的函数很多,可以简化我们的计算和操作,功能强大啊。但当你面对那一堆英文字母,是否为该怎么记住它们感到晕菜?有人对我说,记住常用的几个,其他的不用记那么清楚,有个模糊的印向,用时再翻Help,知道在哪里找就万事OK了。我觉得这个方法很好,现转送给你!

控制程序的流程,有判断、分支和循环三种语句。 接下来我们将一样一样地进行讲解。

===================== 程序流程控制—>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 Eed 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

IF语句.rar (6.7 KB)

程序流程控制——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

Select Case语句.rar (6.44 KB) Select Case语句.rar (6.44 KB)

需要补充一点的是,无论是IF语句还是Select Case语句, 都是可以进行嵌套的! 引用:

ggsmart的补充说明:楼上写的代码,我只考虑分数是整数的时候,这里我只是举个例子,目的是让大家认识Select Case语句,因为没有考虑小数和负数的情况.一旦出现29.5之类的,就都全是优秀.所以,程序本身并不全面.为此,38度OFFICE技术论坛的老朽对代码进行了修定,提供了另一段全面的代码,非常感谢!

代码:

'修订:38度:老朽

'网址:http://www.38duoffice.cn/bbs '日期:2009-7-1 上午 11:22:21 Sub Test()

If [a1].Value = \

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

Select Case [a1].Value Case Is < 30 MsgBox \差\ Case Is < 60

MsgBox \不及格\ Case Is < 80

MsgBox \及格\ Case Is < 90

MsgBox \良好\ Case Else

MsgBox \优秀\ End Select End Sub

程序流程控制——For—Next 循环语句 ============================= 什么是循环?

这里我们指的循环是指重复地执行某项动作(语句块)。 同学们在操场上跑步,两万米长跑,每圈400米。?呯?,枪一响,开始跑,一圈,两圈,三圈......直到跑满50圈才停止。这里,同学们就是在循环地在操场的跑道上执行跑步的动作。

我们来看一下For—next 的句式:

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

next 循环变量

解释:从开始到结束,反复执行For和Next之间的指令块,除非遇到Exit For语句,将提前跳出循环。其中,步长和Exit For语句以及Next后的循环变量均可省略,步长省略的时候默认为

1。Exit for 语句是强制终止循环的语句,执行它后将退出循环,执行next后面的语句。 循环变量是一个变量,可以在循环体中对其进行修改,但一般就避免在循环体中对其修改。

对句式进行了初步的认识后,我们用这个句式来叙述上面学生跑步的问题。把它编成程序,20000米,要跑50圈,也就是要50次,同学们要在上面一圈,两圈。。。。直到满50圈才停止循环跑步,当然,如果你要提前退赛,就不用跑满50圈了。有了这个思想,程序可以写成:

Sub 循环跑步()


excel - VBA基础入门 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016-2021年中国金花米黄抛光砖行业市场调研及战略投资预测报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: