簡體   English   中英

VBA平均功能錯誤-1004

[英]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.AverageApplication.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM