我正在尝试运行一个遍历数据表的宏并计算列G到R的标准偏差。每次运行程序时,我都会收到运行时1004错误,说它无法获取StDev WorksheetFunction类的属性。我大约两周前运行它时没有出现这个错误,所以我不知道该怎么办。以下是发生错误的代码部分。
For i = 1 To lastFilledRow
standardDeviationT = WorksheetFunction.StDev(Range("G" + CStr(i) + ":R" + CStr(i)))
Range("AB" & CStr(i)) = standardDeviationT
Next i
答案 0 :(得分:0)
StDev函数至少需要传递两个数字。如果您的Range只有0或1值,则该函数将失败并触发错误。为了确保你至少传递2,我建议先叫Count:
For i = 1 To 100
If WorksheetFunction.Count(Range("G" + CStr(i) + ":R" + CStr(i))) >= 2 Then
standardDeviationT = WorksheetFunction.StDev(Range("G" + CStr(i) + ":R" + CStr(i)))
Range("AB" & CStr(i)) = standardDeviationT
End If
Next i
此外,如果您使用的是现代Excel I.E 2010,您可能需要考虑切换到使用StDev_S,正如Micorsoft推荐的那样。这是MSDN on StDev的努力。
此功能已被一个或多个新功能所取代 可以提供更高的准确性,其名称更能反映他们的 用法。此功能仍可用于与早期版本兼容 版本的Excel。但是,如果不需要向后兼容, 你应该考虑从现在开始使用新功能,因为它们 更准确地描述他们的功能。
有关新功能的更多信息,请参阅StDev_S方法。