View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Terry V Terry V is offline
external usenet poster
 
Posts: 34
Default Application.worksheetfunction

Thank you
This gives me a good Idea of the different ways to count. I like the example
you gave because I knew nothing about the Locals Windows... which was really
helpful...

Again, Thank you so much
Terry V
"keepITcool" wrote in message
...
the overflow error is probably caused by the fact that you assign the
result to an integer and the result 32767

assign the result to a double or variant.

count counts the numeric entries
countA counts all non-blank entries
countBlank counts the blanks.


Sub Foo()
Dim x As Double, y As Double
Dim n As Long, m As Long

Dim r As Range
Set r = Range("F3:F53")
With Application.WorksheetFunction
'use range variable
x = .Sum(r) / .Count(r)
'use range directly in arguments
y = .Sum(Range("F3:F53")) / .Count(Range("F3:F53"))
'count the blanks can be done several ways
n = .CountIf(Range("F3:F53"), "=" & vbNullString)
m = .CountBlank(Range("F3:F53"))
End With
'now have a look at the values of the variables.
Application.VBE.Windows("Locals").Visible = True
Stop
End Sub

Sub Overflow()
'this will cause overflow!
Dim i As Integer
i = 32767 'ok
i = 32768 'ouch!
End Sub



keepITcool

< email : keepitcool chello nl (with @ and .)
< homepage: http://members.chello.nl/keepitcool


"Terry V" wrote:

Hello
Im trying to create a function for a userform that averages a range on
a sheet based on weather the values are not = "".

EX: the formula in my cells on the sheet (time cells) is this:
=IF(ISBLANK($B7),"",SUM(B7:E7))

Im not sure why, but even on my sheet I cannot get the right answer
but anyways:

On the userform, Im taking the average of cells F3:F53
I ve tried the Application.WorksheetFunction.Sumif
(F3:F53,"<""""")/Application.WorksheetFunction.CountIf(F3:F53,"<"" """
)

But as most of you probably know, it did not work (overflow).
I tried placing the range into a range variable set
fr=range("Times!F3:F53") and using this instead of the range in the
worksheetfunction formula.

How can I place this into a textbox on my userform as the average of
that range (assuming there will be values that have a "" value?

Thank you so much
Terry V