+ Reply to Thread
Results 1 to 6 of 6

[SOLVED] Array match in VBA

Hybrid View

  1. #1
    DoctorG
    Guest

    [SOLVED] Array match in VBA

    Is there a way to implement such a statement in VBA ?

    {=MATCH(1;(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE);0)}

    This works in a cell but I need to create a VBA function that retrieves a
    value based on arguments and use it in a subroutine.

  2. #2
    Tom Ogilvy
    Guest

    RE: Array match in VBA

    v = Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)"

    --
    Regards,
    Tom Ogilvy

    "DoctorG" wrote:

    > Is there a way to implement such a statement in VBA ?
    >
    > {=MATCH(1;(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE);0)}
    >
    > This works in a cell but I need to create a VBA function that retrieves a
    > value based on arguments and use it in a subroutine.


  3. #3
    DoctorG
    Guest

    RE: Array match in VBA

    That simple????..... Thanks Tom

    "Tom Ogilvy" wrote:

    > v = Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)"
    >
    > --
    > Regards,
    > Tom Ogilvy
    >
    > "DoctorG" wrote:
    >
    > > Is there a way to implement such a statement in VBA ?
    > >
    > > {=MATCH(1;(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE);0)}
    > >
    > > This works in a cell but I need to create a VBA function that retrieves a
    > > value based on arguments and use it in a subroutine.


  4. #4
    Tom Ogilvy
    Guest

    RE: Array match in VBA

    IShould be - almost, I left off the closing paren:

    v = Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)")

    and I am pretty sure that it should be entered as a US English syntax -
    although I don't have a foreign version to test with. Test it with some
    simple formulas and see what it will accept. Evaluate is like a virtual
    cell. Most things that will work in a cell will work with evaluate if that
    sheet is active - including array formulas.

    --
    Regards,
    Tom Ogilvy



    "DoctorG" wrote:

    > That simple????..... Thanks Tom
    >
    > "Tom Ogilvy" wrote:
    >
    > > v = Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)"
    > >
    > > --
    > > Regards,
    > > Tom Ogilvy
    > >
    > > "DoctorG" wrote:
    > >
    > > > Is there a way to implement such a statement in VBA ?
    > > >
    > > > {=MATCH(1;(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE);0)}
    > > >
    > > > This works in a cell but I need to create a VBA function that retrieves a
    > > > value based on arguments and use it in a subroutine.


  5. #5
    DoctorG
    Guest

    RE: Array match in VBA

    Tom, Evaluate worked but I had to construct the string embedding the actual
    values:

    evaluate_string = "MATCH(1,(R_CODES=" & search_code & ")*(R_FROM<=" &
    search_date & "),0)"
    result = Evaluate(evaluate_string)

    Otherwise I would get a 2042 error, obviously something to do with the scope
    of the variables used.

    Thanks a lot!!

    "Tom Ogilvy" wrote:

    > IShould be - almost, I left off the closing paren:
    >
    > v = Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)")
    >
    > and I am pretty sure that it should be entered as a US English syntax -
    > although I don't have a foreign version to test with. Test it with some
    > simple formulas and see what it will accept. Evaluate is like a virtual
    > cell. Most things that will work in a cell will work with evaluate if that
    > sheet is active - including array formulas.
    >
    > --
    > Regards,
    > Tom Ogilvy
    >
    >
    >
    > "DoctorG" wrote:
    >
    > > That simple????..... Thanks Tom
    > >
    > > "Tom Ogilvy" wrote:
    > >
    > > > v = Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)"
    > > >
    > > > --
    > > > Regards,
    > > > Tom Ogilvy
    > > >
    > > > "DoctorG" wrote:
    > > >
    > > > > Is there a way to implement such a statement in VBA ?
    > > > >
    > > > > {=MATCH(1;(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE);0)}
    > > > >
    > > > > This works in a cell but I need to create a VBA function that retrieves a
    > > > > value based on arguments and use it in a subroutine.


  6. #6
    Tom Ogilvy
    Guest

    Re: Array match in VBA

    I had no way of knowing whether those were variables or defined names. If
    defined names, as I wrote it would be good. If they are variables used in
    your code, then what you say is true. However, if I had posted a question
    and said:


    -----------------------------------------------------------
    Is there a way to implement such a statement in VBA ?

    {=MATCH(1;(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE);0)}

    ------------------------------------------------------------

    What do you think you would think SearchCode and C_SearchDate were?

    Not complaining, but just to point out something you should consider if you
    post future questions.

    --
    Regards,
    Tom Ogvily



    ..
    "DoctorG" <DoctorG@discussions.microsoft.com> wrote in message
    news:221AFE85-E318-4955-B784-07CE1FC139F5@microsoft.com...
    > Tom, Evaluate worked but I had to construct the string embedding the
    > actual
    > values:
    >
    > evaluate_string = "MATCH(1,(R_CODES=" & search_code & ")*(R_FROM<=" &
    > search_date & "),0)"
    > result = Evaluate(evaluate_string)
    >
    > Otherwise I would get a 2042 error, obviously something to do with the
    > scope
    > of the variables used.
    >
    > Thanks a lot!!
    >
    > "Tom Ogilvy" wrote:
    >
    >> IShould be - almost, I left off the closing paren:
    >>
    >> v = Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)")
    >>
    >> and I am pretty sure that it should be entered as a US English syntax -
    >> although I don't have a foreign version to test with. Test it with some
    >> simple formulas and see what it will accept. Evaluate is like a virtual
    >> cell. Most things that will work in a cell will work with evaluate if
    >> that
    >> sheet is active - including array formulas.
    >>
    >> --
    >> Regards,
    >> Tom Ogilvy
    >>
    >>
    >>
    >> "DoctorG" wrote:
    >>
    >> > That simple????..... Thanks Tom
    >> >
    >> > "Tom Ogilvy" wrote:
    >> >
    >> > > v =
    >> > > Evaluate("MATCH(1,(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE),0)"
    >> > >
    >> > > --
    >> > > Regards,
    >> > > Tom Ogilvy
    >> > >
    >> > > "DoctorG" wrote:
    >> > >
    >> > > > Is there a way to implement such a statement in VBA ?
    >> > > >
    >> > > > {=MATCH(1;(R_CODES=C_SEARCHCODE)*(R_FROM<=C_SEARCHDATE);0)}
    >> > > >
    >> > > > This works in a cell but I need to create a VBA function that
    >> > > > retrieves a
    >> > > > value based on arguments and use it in a subroutine.




+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1