【发布时间】:2015-06-14 19:37:29
【问题描述】:
我正在尝试在 VBA 中编写一个函数来计算三个数字的标准差和范围。如果所有数字都被确定为 --- 那么函数应该输出 --- 作为答案。如果所有三个都不是 --- 那么标准偏差或范围应该用剩余的数字来计算,同时忽略 --- 数字。数字由用户输入。这是我为范围和标准偏差计算编写的代码。通过使用内置的 excel WS 函数,如果它们不是数字,它已经忽略了输入,我能够绕过那个棘手的位。但是,正如所见,我无法让代码识别所有三个都何时---注册为---。
计算范围的功能-------------------------------
函数范围(ParamArray ObservedValues())
而 ObservedValues(i) = "---" 范围=“---” 温德
Max = Application.WorksheetFunction.Max(ObservedValues)
Min = Application.WorksheetFunction.Min(ObservedValues)
Range = Max - Min
结束函数
计算标准差的函数(多次尝试)
第一次尝试
函数 SD(ObservedValueA, ObservedValueB, ObservedValueC, ObservedMean)
如果 ObservedValueA = "---" And ObservedValueB = "---" And ObservedValueC = "---" 那么 SD =“---” 结束如果
If ObservedValueA <> "---" Then
a = 1
x = ObservedValueA - ObservedMean
Else
a = 0
x = 1
End If
If ObservedValueB <> "---" Then
b = 1
y = ObservedValueB - ObservedMean
Else
b = 0
y = 1
End If
If ObservedValueC <> "---" Then
c = 1
Z = ObservedValueC - ObservedMean
Else
c = 0
Z = 1
End If
SD = Sqr((1 / (a + b + c)) * x ^ 2 * y ^ 2 * Z ^ 2)
结束函数
第二次尝试
函数 SD(ParamArray Number_Input())
而 Number_Input = "---" SD =“---” 文德 SD = Application.WorksheetFunction.StDev(Number_Input)
结束函数
【问题讨论】:
标签: excel vba standard-deviation