楼主: zengdezhi4775
1462 3

一个VBA自定义函数(求助) [推广有奖]

  • 0关注
  • 0粉丝

本科生

31%

还不是VIP/贵宾

-

威望
0
论坛币
877 个
通用积分
1.5000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
245 点
帖子
15
精华
0
在线时间
164 小时
注册时间
2006-7-24
最后登录
2023-5-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
由于我要处理大量的数据,内容是计算各时期不同公司的市盈率方差,但是要剔除其中小于零的市盈率(也就是市盈率小于零的公司在相应的时期不包括在内),我的具体代码是这样的:
Function varif(rng As Range) As Variant
    Dim i As Integer
    Dim j As Integer
    Dim p As Double
    Dim q As Integer
    Dim m As Double
    MaxRows = rng.Rows.Count
    MaxCols = rng.Columns.Count
    p = 0
    q = 0
    For i = 1 To MaxRows
        For j = 1 To MaxCols
            If rng(i, j) > 0 Then
                p = p + rng(i, j)
                q = q + 1
            End If
        Next j
    Next i
    i = 1
    j = 1
    m = 0
    For i = 1 To MaxRows
        For j = 1 To MaxCols
            If rng(i, j) > 0 Then
            m = m + (rng(i, j) - p / q) * (rng(i, j) - p / q)
            End If
        Next j
    Next i
    varif = m / (q - 1)
End Function
现在的问题是,当我在一列中选择400多个数据的时候计算正常,但是超过了500左右的样子计算出来的就是空值!求高手指点!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:自定义函数 VBA 自定义 function Integer 求助 VBA 函数 定义

沙发
pazixu 发表于 2010-1-19 23:20:54 |只看作者 |坛友微信交流群
你的函数好像只是求了个方差啊...
如果是那样的话, 把矩阵的非零数放到一个一维数组里, 然后用stdev()^2就可以了吧...
你可以试试...

使用道具

藤椅
zengdezhi4775 发表于 2010-1-20 11:55:30 |只看作者 |坛友微信交流群
好的,谢谢,我试试!

使用道具

板凳
xubin9676 发表于 2010-1-21 22:35:22 |只看作者 |坛友微信交流群
好东西,顶一下

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 18:24