0

我正在尝试运行一个通过数据表并计算列 G 到 R 的标准偏差的宏。每次运行程序时,我都会收到运行时 1004 错误,说它无法获取的 StDev 属性工作表函数类。大约两周前我运行它时没有这个错误,所以我不知道该怎么办。这是发生错误的代码部分。

For i = 1 To lastFilledRow

    standardDeviationT = WorksheetFunction.StDev(Range("G" + CStr(i) + ":R" + CStr(i)))
    Range("AB" & CStr(i)) = standardDeviationT

Next i
4

1 回答 1

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 IE 2010,您可能需要考虑切换到使用 StDev_S,因为 Micorsoft 建议这样做。这是MSDN 在 StDev 上的一个尝试。

此功能已被一个或多个新功能所取代,这些功能可以提供更高的准确性,并且其名称可以更好地反映其用途。此函数仍可用于与早期版本的 Excel 兼容。但是,如果不需要向后兼容,您应该考虑从现在开始使用新功能,因为它们更准确地描述了它们的功能。

有关新函数的详细信息,请参阅StDev_S方法。

于 2012-10-05T23:29:23.687 回答