LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,355
Default Defining a function to use multiple places in code

I have the following:

Debug.Print myRow("TEXT", Cells(i, "H").Value & "C2")


Function myRow(Lookup As String, myString As String) As Variant

Dim res As Variant
'res = Application.Match(Lookup, myString.Columns(2), 0)
res = Application.Match(Lookup, myString, 0)
Debug.Print res, Lookup, myString
If IsError(res) Then
myRow = "some error message here?"
Else
myRow = res
End If

End Function

Error 2015
TEST
'[workbook.xls]sheet1'!C2

I think I need an indirect around this, but can't get it to work.

"Dave Peterson" wrote:

First, I wouldn't use Row as the function name--it looks too much like the .Row
property for a range object. Same thing with using Range as a variable, too.

Function myRow(Lookup as String, myRng as Range) as variant

dim res as variant
res = application.match(lookup, myRng.columns(2), 0)

if iserror(res) then
myRow = "some error message here?"
else
myrow = res
end if

end function

And you could use it like:

sub testme01()

dim myRng1 as range
dim myStr as string
with activesheet
set myrng1 = .range("c1:d99")
myStr = .range("a1").value
end with

msgbox myRow(mystr,myrng1)
end sub

But this is just a guess. I'm confused about what you're passing in your range
variable--do you really want a range? Are there two columns included in that
range?

And your match statement is using True and False, so I'm confused about that,
too.



Barb Reinhardt wrote:

Let's say I want to pass a string and a value from RC7 of the open workbook
to the function. How would I set up the function.

This is what I have so far:

Function row(lookup As String, range As String) As Variant
row = "=MATCH(lookup,indirect(""'[""&range&""]Sheet1'!""&C2),TRUE),0)"
Debug.Print row
End Function

In the match function, I want it to check COLUMN 2.

How do I do this?

"NickHK" wrote:

Make your function public in a module, then call it from whereever you need
its functionality. As a trivial example :

' In a module
Public Function GetVal(argRange as Range) as variant
GetVal=argRange.Value
End function

' Call the function from anywhere
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox GetVal(Target)
End Sub

NickHK

"Barb Reinhardt" ¼¶¼g©ó¶l¥ó·s»D:CFDD9 ...
I have a function that I need to use multiple places in my code, but don't
want to have to type it over and over. Could someone give an example of
how
I'd set it up and use it? You can give a simple example and I'll fill in
my
own data.

Thanks,
Barb Reinhardt




--

Dave Peterson

 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Find a Match in Multiple Places & Return Multiple Values Toria Excel Worksheet Functions 3 June 24th 08 09:49 PM
VBA code stopping in odd places JDub Setting up and Configuration of Excel 2 October 10th 06 08:04 AM
Defining Trial Period of VBA Code ExcelMonkey[_40_] Excel Programming 1 January 29th 04 08:09 PM
Defining ranges in VB code Rachael Moody Excel Programming 5 January 27th 04 02:21 PM
different places to put excel code? Ross[_5_] Excel Programming 3 July 15th 03 04:31 PM


All times are GMT +1. The time now is 01:31 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"