View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default OnTime: Pass Object Arguments

Just to confirm, you can only pass strings (incl numbers) as arguments to a
routine called with the OnTime method. In addition to Dave's suggestion you
could also pass one or more string arguments such that you can recreate the
object, eg

set rng = Workbooks(sArg1).Worksheets(sArg2).Range(sArg3)

or

set rng = range(sFullAddress)
where sFullAddress = "'[Book1]Sheet1'!A1"
there's a pair of apostrophes in that, and would need to be less than 255

Regards,
Peter T


"Greg Lovern" wrote in message
ups.com...
I understand how to pass number and string arguments with OnTime. But
what about object arguments? Can I pass a range object, combobox
object, etc.?


Here's how I'm passing number and string arguments. How do I pass
object arguments?


Function tester1()
Const NUM_ARG As Long = 5
Const STRING_ARG As String = "String"

Debug.Print "tester1: " & NUM_ARG & ", " & STRING_ARG & ", " & Now
Application.OnTime Now + 0.0000001, "'tester2 " & NUM_ARG & ", """
& STRING_ARG & """'"
End Function


Function tester2(NUM_ARG, STRING_ARG)
Debug.Print "tester2: " & NUM_ARG & ", " & STRING_ARG & ", " & Now
Debug.Print
End Function


Thanks,

Greg