[英]VBA Average Function Error - 1004
嘗試計算2個范圍的平均值時,出現錯誤“無法獲取Worksheetfunction類的平均屬性”。
我的表可以在下面找到。
當我計算%列的平均值時,我沒有問題。 它為我提供了正確的輸出,但是,當我嘗試計算$列的平均值時遇到了問題。
Col | % | $
1 | 2.33% | $2.33
2 | 3.64% | $3.64
3 | 10.83% | $10.83
4 | 6.07% | $6.07
5 | - | -
6 | 12.99% | $12.99
7 | 18.99% | $18.99
Dim myRange As Range
Dim myAverage As Variant
'The user selects the range
Set myRange = Application.InputBox( _
prompt:="Please select the range", Title:="My Range", Type:=8)
'This splits the range into two areas because the user typically does not select the row with the "-" in it.
'myRange would typically look something like (B1:B4,B6:B7) OR (C1:C4,C6:C7)
Area1 = myRange.Areas(1)
Area2 = myRange.Areas(2)
myAverage = Application.WorksheetFunction.Average(Area1, Area2)
我收到的錯誤是“無法獲取Worksheetfunction類的平均屬性”,並且發生在myAverage計算中。
關於為什么它無問題地計算%列但不計算$列的任何想法?
提前致謝!
聲明為適當的類型(Range對象):
Dim Area1 As Range
Dim Area2 As Range
使用Set
關鍵字分配給Object變量。
Set Area1 = myRange.Areas(1)
Set Area2 = myRange.Areas(2)
然后,您應該能夠使用Application.Average
或Application.WorksheetFunction.Average
來獲取均值。
myAverage Application.Average(Area1, Area2)
否則,您會將變量數組傳遞給該函數,該數組不受支持,因此會引發錯誤。 “ Average
功能需要多個單元格的連續范圍,或者單個單元格或值的逐項列出。 您不能將每個單元格的多個范圍傳遞給它。
或者,完全省略Area1/Area2
步驟並簡單地執行以下操作:
myAverage = Application.Average(myRange.Areas(1), myRange.Areas(2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.