2012-10-05 36 views
0

我試圖運行一個宏,通過數據表,並通過R計算列G的標準偏差。每次我運行該程序,我得到一個運行時1004錯誤說它無法獲得WorksheetFunction類的StDev屬性。當我在2周前運行它時,我沒有出現這個錯誤,所以我不知道該怎麼做。以下是發生錯誤的代碼部分。VBA無法獲得StDev屬性的工作表類

For i = 1 To lastFilledRow 

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

Next i 

回答

0

StDev函數需要傳遞至少兩個數字。如果你的範圍只有0或1的值,那麼該功能將失敗並且引發錯誤。爲了確保你逝去的至少2個,我建議先打電話計數:

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 2010即,你可能要考慮切換到使用StDev_S,作爲Micorsoft推薦它。這是從MSDN on StDev發揮。

此功能已被替換爲一個或多個新功能是 可提供改進的精度,其名稱更好地反映他們的 使用。此功能仍可用於與Excel的早期版本 兼容。但是,如果不需要向後兼容性,則應從現在開始考慮使用新功能,因爲它們可以更準確地描述其功能。

有關新功能的更多信息,請參閱StDev_S方法。

相關問題