excel里的VBA语言 是啥子意思吗

Sub aa()
For i = 7 To 285
Cells(i, 3) = Application.Ln(Cells(i, 2)) - Application.Ln(Cells(i - 1, 2))
Next

End Sub
Sub montcalo()
For i = 7 To 285
Cells(i, 11) = -0.0007 + 0.0126 * Application.NormSInv(Rnd())
Next

End Sub
这又是啥意思?

VBA是基于VB的一种宏语言,主要用于一些繁琐操作的自动化。
Cells(行号,列号)代码是定位作用,比如cells(8,3)就表示C8单元格
ln是返回自然对数;NormSInv是返回标准正态分布累积函数的逆函数;RND()返回0-1之间的随机数。
那么上例解释如下:
aa()自定义函数:C列第7~285行之间随机选择一个单元格Ci,其值等于Bi的自然对数减去B(i-1)单元格的自然对数。
montcalo()自定义函数:K列第7~285行之间随机选择一个单元格Ki,其值等于一个随机标准正态分布累计数的逆函数的值乘以0.0126,再减去0.0007的结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-29
我没用过excel的这个,不过应该是函数或者是宏吧。我搞代码的,还可以看的懂
第一个是从第七行到第285行内每行第三列的值等于该行第二列的值减去上一行第二列的值。大概如此,不知道Ln()函数的内容,你没贴出来。

第二个也是从第七行到第285行中每一行第11列的值等于 -0.0007 + 0.0126 * 一个数,这个数大概是随机数经过一些处理后的值,NormSInv()和Rnd()你没提供,从名字来看,Rnd()大概是产生随机数的。另外一个不知道是做什么处理本回答被提问者采纳
第2个回答  2012-11-29
Sub aa()
For i = 7 To 285 '建立一个循环从第7行开始到285行
Cells(i, 3) = Application.Ln(Cells(i, 2)) - Application.Ln(Cells(i - 1, 2)) '第三列的值=同行第2列值的自然对数。(自然对数以常数项 e (2.71828182845904) 为底)减去第二列的上一行的自然对数。
Next
End Sub
第二段代码道理相同用循环处理
前面的常数不用解释了,后面的函数NormSInv返回一个rnd()(随机数,大于0小于1的随机数)标准正态累积分布函数的反函数。该分布的平均值为 0,标准偏差为 1。
第3个回答  2012-11-29
NormSInv 正态分布的概率值。

LN 自然对数
Rnd 随机数

用循环方法,给第3列和第11列从第7行到285行的格赋值。值的得来就上面函数计算的结果。
相似回答