Board logo

標題: [發問] 自訂函數:跨工作表範圍引數出現錯誤 [打印本頁]

作者: mnsmrtl    時間: 2018-2-2 13:56     標題: 自訂函數:跨工作表範圍引數出現錯誤

請問各位高手
  1. Function avg(Rng As Range, dataN%)
  2. Dim xRng As Range, Tf As Boolean
  3. Set xRng = Range(Rng, Rng.Offset(0, dataN - 1))
  4. Tf = WorksheetFunction.Count(xRng) = dataN
  5. If Tf Then
  6.     avg = WorksheetFunction.Average(xRng)
  7. Else
  8.     avg = ""
  9. End If
  10. End Function
複製代碼
在set xrng 處,執行中因為會傳入不同工作表的範圍,但在執行時出現「應用程式或物件定義上的錯誤」
檢查資料時,也並沒發現起始範圍不對,偏偏用迴圈丟入範圍及dataN時,會不定時發生錯誤
該函數是不是有更好的寫法?

麻煩大家不吝指教,謝謝
作者: GBKEE    時間: 2018-2-3 10:43

回復 1# mnsmrtl
  1. Function avg(Rng As Range, dataN%)
  2.     Dim xRng As Range, Tf As Boolean
  3.     If dataN% = 0 Then Exit Function
  4.     Set xRng = Range(Rng, Rng.Offset(0, dataN - 1))
  5.     Tf = WorksheetFunction.Count(xRng) = dataN
  6.     If Tf Then
  7.         avg = WorksheetFunction.Average(xRng)
  8.     Else
  9.         avg = ""
  10.     End If
  11. End Function
複製代碼

作者: mnsmrtl    時間: 2018-2-3 13:04

感謝回復,已解決~~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)