Link to home
Start Free TrialLog in
Avatar of GJPerkins
GJPerkins

asked on

Excel 2000/97 VBA: Using the Match from the WorksheetFunction class

Excel 2000 (although would like to know if 97 is any different), VBA 6

On the worksheet, it is easy

=MATCH(Q3,Measure,0)

Where measure is a named Range.

I thought I could do something like this in a VBA Sub/function:-

Debug.Print CStr(WorksheetFunction.Match(Q3, ActiveWorkbook.Names("Measure").RefersToRange.Areas(1).Address, 0))
(WRONG - Get "Unable to find match property in WorksheetFunction class")

Object browser says Match is in the WorksheetFunction class.

Set WF = CreateObject("Excel.WorksheetFunction")
NOR
Set WF = New Excel.WorksheetFunction
...do not seem to create the object.

Is it possible to call the functions in the WorksheetFunction class???  Others must have needed to do this before now, how did you solve it? Go to a empty cell and change the formula on the fly - messy but a possibility??



Avatar of Dave
Dave
Flag of Australia image

Hi GJPerkins,

try something like

MsgBox Application.WorksheetFunction.Match(Range("Q3"), Range("Measure"), 0)


Cheers

Dave
ASKER CERTIFIED SOLUTION
Avatar of Dave
Dave
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of GJPerkins
GJPerkins

ASKER

Cheers Dave - I feel a bit of a plonker for not twigging that!!