STDEV function in VB scritp for excel

D

dbwells

I am writing a VB script in excel and I am trying to use the STDEV function.
I have worked through several errors but I am stumped on this last one:

"Run time error 1004
Unable to get the StDev property of the Worksheetfunction class."

I am a novice at VB so any help would be appreciated.
 
J

Jerry W. Lewis

VB (standalone language) or VBA (supplied with Excel)?
What version of Excel?
Post your code.

In very old versions of Excel (pre Excel97, & possibly Excel97 as well), you
would need to use Application.StDev() instead of WorksheetFunction.StDev()

Jerry
 
D

dbwells

Yes VBA Supplied with Excel
Excel 2002 sp3
application.stdev() does work.
Sheets("Sheet1").Cells(Nrow, 3).Value = Application.StDev("D" & Srow & ":D"
& Erow - 1)

Nrow is the row number of the summary worksheet.
Srow is the starting row of the number group.
Erow - 1 is the end row of the number group.
Erow is the row number of the next number group.

I now get a #VALUE! on the summary worksheet but this is a lot further than
I was getting before.

thanks for your help.
 
J

Jerry W. Lewis

Your code produces errors because it does the equivalent of using
=STDEV("D5:D6")
instead of
=STDEV(D5:D6)
The arguments to STDEV must be numbers, arrays, or ranges, not strings. Try
StDev(Range("D" & Srow & ":D" & Erow - 1))
with either Application or WorksheetFunction as the prefix. Excel 2002
supports both prefixes, but WorksheetFunction has advantages so long as you
do not need the code to run in old versions of Excel.

Jerry
 
D

dave88

What if all I want to do is copy or use an existing VBA 6.5 file (with old
data) in Excel 2003 into a new file to be able to enter new current data into
the new file?

In a new file which I copied from the old Excel 2003 VBA 6.5 file I used
Clear Contents to delete all data but the first two lines as sample data but
now get "Run-time error '1004': "Unable to get the Match property of the
WorksheetFunction class".

I double-checked the VBA code on the prior file - all is the same - is it
the range? I updated the range but that didn't work either.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top