常用VBA函数

Excel VBA的函数大体上可以分为四大类:算术函数、字符申函数、转换函数和日期时间函数。下面我们来一个个讲解一下:

matlab生成随机整数_rand生成随机整数_excel生成随机整数

使用算术函数的几点说明:

(1)利用Int(n)是求小于或等于n的最大整数。利用Int函数可以对数组进行四舍五入。

例如,对一个正数n舍去小数位时进行四舍五入运算,可以采用如下:

Int(n+0.5)

当n=9.4时,Int(9.4+0.5)=9

当n=9.5时,Int(9.5+0.5)=10

(2)随机函数Rnd可产生一个介于0到1 (不包括1)之间的单精度随机小数。所谓随机数是指人们不能预先估计到的数。

在程序中,使用随机数来实现些随机处理的问题。例如,各种社会福利抽奖就需要产生随机数。在考场排位时,也需要使用随机数对考生进行随机排位。

在实际应用中,往往需要产生随机整数,这就需要把Rnd函数与Int函数配合使用。例如Int(10*Rnd+1)可以产生1-10 之间的随机整数,也就是说,该表达式的值可以是1-10 之间的10个数字,具体产生哪个数字,由VBA运行时随机给定。

要产生[a, b]区间内的随机整数,可以使用公式:

Int ((b-a+1) *Rnd+a)

当反复运行一个程序时,统一序列的随机数会重复出现。为了避免这种情况的发生,在调Rnd 函数之前,先使用Randomize语句来初始化随机数发生器。

比如:生成一个1到6之间的随机整数。

Sub test()

Dim a As Integer,b AS Integer,c As Integer

Randomize

a= Int((10* Rnd)+ 1)

b= Int((10* Rnd)+ 1)

excel生成随机整数_matlab生成随机整数_rand生成随机整数

c=a+b

Debug.Print c; a; b

程序运行后,在立即窗口中显示产生a+b的和及其两个随机数a, b。多次执行过程test,excel生成随机整数, 可以看到产生的随机数是不同的,如下图所示:

matlab生成随机整数_excel生成随机整数_rand生成随机整数

备注:如果把Randomize这条语句去掉,请大家试试运行程序,看看得到什么结果。

excel生成随机整数_rand生成随机整数_matlab生成随机整数

使用字符串丽数的几点说明:

(1)在函数Mid中,若省略n,则得到的是从p开始往后的所有字符,如Mid(“Welcome” 3)的结果为“come”。

(2)在函数Instr中excel生成随机整数,f和k均为可选参数,f表示开始搜索的位置(默认值为1), k表示比较方式。若k为0 (默认),表示区分大小写:若k为1,则不区分大小写。

比如:使用字符串函数实例。使用InStr 函数来查找某字符串在另一个字符串中首次出现的位置。

Sub test()

1 Dim SearchString, SearchChar, MyPos

‘被搜索的字符串。

2 SearchString = “XXpXXpXXPXXP”

‘要查找字符串”P”。

3 SearchChar = “P”

‘从第四个字符开始,以文本比较的方式找起。(小写p)。

4 MyPos = InStr(4, SearchString, ScarchChar, 1)

5 Debug.Print MyPos

‘从第一个字符开使,以二进制比较的方式找起。(大写P)。

‘小写p和大写P在二进制比较下是不一样的。

rand生成随机整数_excel生成随机整数_matlab生成随机整数

6 MyPos = InStr(1, SearchString, SearchChar, 0)

7 Debug.Print MyPos

‘默认的比对方式为二进制比较(最后一个参数可省略)。

8 MyPos = InStr(SearchString, SearchChar)

9 Debug.Print MyPos

10 MyPos = InStr(1, SearchString, “W”)

11 Debug.Print MyPos

End Sub

程序运行后,第5、第7、第9和第11行输出的结果在立即窗口显示,如下图所示。

matlab生成随机整数_rand生成随机整数_excel生成随机整数

备注:在VBA程序中,可以在每一条语句前面添加数字标号(但不是必须的),这种做法往往对于说明和解释程序非常方便,对于编写程序则不是必须的。

rand生成随机整数_excel生成随机整数_matlab生成随机整数

matlab生成随机整数_rand生成随机整数_excel生成随机整数

DatcDiff函数用来计算两个指定日期的时间差,虽然它不属于日期函数,但把它放在日期函数组中较好。

比如:使用DateDiff函数来计算某个日期与今日相差几天。

Sub test1()

s= DatcDiff(d”,#1/1/2007#,Now)

End Sub

备注:常见的工作表函数参考Excel 2007的帮助文件,这里就不再列举了。

今天的分享就到这里,欢迎大家在评论区留下您的思路,让我们共同讨论,也许您的思路是最棒的。喜欢文章记得分享哦!

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889