> > I am writing my own functions to use in spreadsheets. When passing a range > to the function I have to enclose the range in quote marks for it to work. > How do I get around this? Also, is there an easy way to allow the function > to accept a range from another worksheet? Currently I do this in a very > inefficient manner. Lastly, a problem exists when using these functions in > two worksheets simultaneously where the source range is in the first > worksheet only - it will only seem to calculate correctly on one page at a > time. > > EG > Problem 1. > cell formula must look like this "=myfunction("A1:A4",1) > Rather than "=myfunction(A1:A4,1) > > Problem 2. > How do I get this to work better > cell formula "=myfunction("sheet1!A1:A4",1) Sam, 1) To pass a range to a function declare the range as a Variant in your function declaration: Function myfunction(InRange As Variant, InInteger As Integer) 2) You may want to try using the Volatile method in your function to force it to be recalculated. Function myfunction .... Application.Volatile . . . End Function Good Luck! Phil Topness