+关注 私聊
  • 小M

    第31楼2011/04/11

    应助达人

    用excel编的啊,厉害啊!

0
    +关注 私聊
  • gzgaoling

    第32楼2011/04/12

    学习一下去,先感谢楼主分享,好人一生平安!

0
    +关注 私聊
  • roland2008

    第33楼2011/04/28

    VBA功能估计用excel的人很少支关注

0
    +关注 私聊
  • ningbin6

    第34楼2011/10/11

    还是学下原理。楼主高啊

0
    +关注 私聊
  • flin0223

    第35楼2011/10/14

    为什么最多只能输入14组数据咯?请大虾赐教

0
    +关注 私聊
  • 老化验工

    第36楼2011/10/14

    对数据的个数是没有特别的限制条件,只是我当时设计时,考虑到分析数据一般在10个以内,所以就“信手”定了个“14”,其实,只需要改一下数据的上限就可以了,下面是“输入实验数据”按钮引发计算“动作”的原代码,注意看加红的数组“data(14)”:

    Private Sub 输入实验数据_Click()
    Dim data(14)
    Dim n
    Dim x
    n = InputBox("请输入实验数据个数n=", "指定数据个数")
    If n = "" Then
    Exit Sub
    End If
    Range("C2") = n
    For x = 1 To n
    data(x) = InputBox("请依次输入每一个实验数据x" & x, "输入数据")
    If data(x) = "" Then
    Exit Sub
    End If
    Cells(1 + x, 2) = data(x)
    Next
    Range("D2") = "=AVERAGE(B2:B15)"
    Range("F2") = "=AVEDEV(B2:B15)"
    Range("G2") = "=AVEDEV(B2:B15)/AVERAGE(B2:B15)*100"
    Range("H2") = "=max(B2:B15)-min(B2:B15)"
    Range("I2") = "=max(B2:B15)"
    Range("J2") = "=min(B2:B15)"
    Range("K2") = "=median(B2:B15)"
    Range("L2") = "=mode(B2:B15)"
    Range("M2") = "=stdev(B2:B15)"
    Range("N2") = "=stdev(B2:B15)/average(B2:B15)"
    For x = 1 To n
    Cells(x + 1, 5) = Abs(Cells(2, 4) - Cells(x + 1, 2))
    Next

    End Sub

    如果将data(14)改为data(10000),则允许的数据个数就可达10000。这并不影响几个到十几个数据的处理,因为,系统会要求你输入你要处理的数据个数n,一般不会影响速度。当然,还必须将统计函数涉及的数据范围设宽一些,即将上面代码中的红色B15设置更大些(例如,改成B101,即统计范围为100个数.即使你只输入12个数据,此处虽然设置为B101,但计算结果与设B13、B15是相同的)。
    如果你设置成B10000,虽然结果是正确的,但机器运算速度会减慢,也不太恰当。
    我发一个data(10000)的修改稿给你吧,请查收。

    我只改了误差计算的sheet2(允许最大输入10000个数据),显著性、可逆值取舍等没有改,因为它们涉及的数据不会很大。

    flin0223(flin0223) 发表:为什么最多只能输入14组数据咯?请大虾赐教

0
    +关注 私聊
  • flin0223

    第37楼2011/10/16

    谢谢大虾,收到了,很好用!

    zlhuang0132(zlhuang0132) 发表:对数据的个数是没有特别的限制条件,只是我当时设计时,考虑到分析数据一般在10个以内,所以就“信手”定了个“14”,其实,只需要改一下数据的上限就可以了,下面是“输入实验数据”按钮引发计算“动作”的原代码,注意看加红的数组“data(14)”:

    Private Sub 输入实验数据_Click()
    Dim data(14)
    Dim n
    Dim x
    n = InputBox("请输入实验数据个数n=", "指定数据个数")
    If n = "" Then
    Exit Sub
    End If
    Range("C2") = n
    For x = 1 To n
    data(x) = InputBox("请依次输入每一个实验数据x" & x, "输入数据")
    If data(x) = "" Then
    Exit Sub
    End If
    Cells(1 + x, 2) = data(x)
    Next
    Range("D2") = "=AVERAGE(B2:B15)"
    Range("F2") = "=AVEDEV(B2:B15)"
    Range("G2") = "=AVEDEV(B2:B15)/AVERAGE(B2:B15)*100"
    Range("H2") = "=max(B2:B15)-min(B2:B15)"
    Range("I2") = "=max(B2:B15)"
    Range("J2") = "=min(B2:B15)"
    Range("K2") = "=median(B2:B15)"
    Range("L2") = "=mode(B2:B15)"
    Range("M2") = "=stdev(B2:B15)"
    Range("N2") = "=stdev(B2:B15)/average(B2:B15)"
    For x = 1 To n
    Cells(x + 1, 5) = Abs(Cells(2, 4) - Cells(x + 1, 2))
    Next

    End Sub

    如果将data(14)改为data(10000),则允许的数据个数就可达10000。这并不影响几个到十几个数据的处理,因为,系统会要求你输入你要处理的数据个数n,一般不会影响速度。当然,还必须将统计函数涉及的数据范围设宽一些,即将上面代码中的红色B15设置更大些(例如,改成B101,即统计范围为100个数.即使你只输入12个数据,此处虽然设置为B101,但计算结果与设B13、B15是相同的)。
    如果你设置成B10000,虽然结果是正确的,但机器运算速度会减慢,也不太恰当。
    我发一个data(10000)的修改稿给你吧,请查收。

    我只改了误差计算的sheet2(允许最大输入10000个数据),显著性、可逆值取舍等没有改,因为它们涉及的数据不会很大。

0
    +关注 私聊
  • iptfm

    第38楼2011/11/21

    谢谢楼主。。。。

0
    +关注 私聊
  • dahua1981

    第39楼2011/11/21

    应助达人

    真佩服楼主的精神

0
    +关注 私聊
  • winntvip

    第40楼2012/06/06

    楼主对代码非常熟悉,赞一个

0