设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

初识VBA:第六课 小数点代码分析及For循环语句

1970-1-1 08:00| 发布者: 李寻欢『文章』| 查看: 4479| 评论: 0

这节课我们来分析一下小数点按钮的代码,这段代码用到了for循环及if语句,if语句上节课已讲过了,这节课着重讲一下for循环语句。

for循环有两种形式:
1、For Each.…Next 针对一个数组或集合中的每个元素,重复执行一组语句。
这种循环以后再讲
2、For…Next 以指定次数来重复执行一组语句。
语法:
(从) (到) (每次+)
for 变量=初始值 To 结束值 [Setp 步长]
语句1
语句2
语句N
Next 变量

当每次变量加1的情况下,中括号里的“Setp 步长”可以不写,如果变量每次加的不是1,是其它数字,这句不可省略。

当程序运行到“Next 变量”时,就会做一个加法运算:变量=变量+步长,比如变量原来等于1,步长设为2,当运行到这句时,变量就变成:1+2=3了,然后程序又返回第一句:for 变量=初始值 To 结束值 [Setp 步长],到了这里程序会自动用变量的值跟结束值比较一下,如果变量小于或等于结束值,程序就再执行一次循环体里的语句,如果大于结束值,就直接跳过循环,执行“Next 变量”之后的语句了。当然,不是一定要执行到变量大于结束值才可以跳出循环,可以在循环体内设置一个条件,当满足这个条件就用“Exit For”来跳出循环,我们的小数点按钮就用了这种方法。下面我们来分析小数点的代码。

程序思路:
要确定文本框中的字符是否包含小数点,必须一个字符一个字符地跟“.”比较,如果该字符等于“.”,就说明文本框中的字符包含小数点,这时就可以跳出循环了,因为我们的目的已达到。当然,你可以不跳出循环,让它比较完所有字符,程序也不会出错,只是程序运行时间增加了,程序的效率降低了。如果找到小数点,要把这个信息用一个变量来保存起来,因为我们要根据找到或没找到小数点来决定小数点按钮按下去后,文本框里的字符后面是否加小数点。如果找到小数点,就不能再加小数点了,如果没找到,就在后面加一个小数点。因为是否找到小数点只有两种状态:找到或没找到,所以就把保存是否找到小数点的信息的变量定义为布尔型数据,这种数据只有两种值True/False,用中文表示就是:是/否。你也可以定义成字符型或数字型,然后用不同的值来表示是否找到,只要你知道是什么意思就可以了,不过如果只存在两种状态的话,最好用布尔型。

程序思路的第一句话我提到了要一个字符一个字符地跟“.”比较,但文本框里的字符是一串,如何把它们分解成一个一个呢?用Mid函数!
Mid函数的语法:
变量=Mid(字符串,从第几个字符开始截取,要截取几个字符)
如:i=Mid(“Hello!”, 5, 1)表示从第5个字符开始截取,要截取1个字符。运行这句程序之后,I就等于o了。程序分析得差不多了,下面注释一下各语句:

Private Sub cmdPoin_Click()
Dim i As Integer ‘定义变量i,让它做为循环变量
Dim j As String ‘定义变量j,让它保存mid函数截取下来的字符
Dim PoinTag As Boolean ‘定义变量PoinTag,让它保存是否找到小数点标志
For i = 1 To Len(txtResult) ‘从1循环到字符长度,注:Len函数返回字符长度
j = Mid(txtResult, i, 1) ‘截取第i个字符赋值给j
If j = "." Then ‘如果j等于小数点
PoinTag = True ‘把找到小数点的信息保存到顶变量pointag中
Exit For ‘跳出循环体,不再循环
End If ‘if语句结束
Next i ‘下一个i
If PoinTag = False Then ‘如果变量PoinTag的值等于false,那么
txtResult = txtResult & "." ‘把小数点加到文本框中的字符后面
End If
End Sub

最新评论

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 16:27 , Processed in 0.096942 second(s), 16 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部