ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   AddressOf (https://www.excelbanter.com/excel-programming/428645-addressof.html)

E.Z.

AddressOf
 
Hello,
Doe's "AddressOf" works with Excel macros?
I keep getting a Compile Error for using it.
"Invalid use of AddressOf operator"

This is the code:

Private Sub TestSub()
i = 0
End Sub

Private Function GetAddr(ByVal Addr As Long) As Long
GetAddr = Addr
End Function

Private Sub Test()
Dim Addr as Long
Addr = GetAddr (AddressOf TestSub)
End Sub

The error is for Test Sub
Tnx



Tim Zych

AddressOf
 
I don't have much experience with AddressOf, but from what I can see, if
TestSub is moved to a regular module that should fix it.

From my book "VB and VBA In a Nutshell" by Paul Lomax:

AddressOf Operator
Rules at a Glance:
"The callback function must be stored in a code module; attempting to store
it in a class or form module generates a compile-time error, "Invalid use of
AddressOf operator."

When I tested your code, with TestSub moved to a regular code module, it
worked.


--
Regards,
Tim Zych
http://www.higherdata.com
Workbook Compare - Excel data comparison utility

"E.Z." wrote in message
...
Hello,
Doe's "AddressOf" works with Excel macros?
I keep getting a Compile Error for using it.
"Invalid use of AddressOf operator"

This is the code:

Private Sub TestSub()
i = 0
End Sub

Private Function GetAddr(ByVal Addr As Long) As Long
GetAddr = Addr
End Function

Private Sub Test()
Dim Addr as Long
Addr = GetAddr (AddressOf TestSub)
End Sub

The error is for Test Sub
Tnx





E.Z.

AddressOf
 
Tnx a lot,
What do you mean by "regular code module"?

"Tim Zych" <tzych@nospam at earthlink dot net wrote in message
...
I don't have much experience with AddressOf, but from what I can see, if
TestSub is moved to a regular module that should fix it.

From my book "VB and VBA In a Nutshell" by Paul Lomax:

AddressOf Operator
Rules at a Glance:
"The callback function must be stored in a code module; attempting to
store it in a class or form module generates a compile-time error,
"Invalid use of AddressOf operator."

When I tested your code, with TestSub moved to a regular code module, it
worked.


--
Regards,
Tim Zych
http://www.higherdata.com
Workbook Compare - Excel data comparison utility

"E.Z." wrote in message
...
Hello,
Doe's "AddressOf" works with Excel macros?
I keep getting a Compile Error for using it.
"Invalid use of AddressOf operator"

This is the code:

Private Sub TestSub()
i = 0
End Sub

Private Function GetAddr(ByVal Addr As Long) As Long
GetAddr = Addr
End Function

Private Sub Test()
Dim Addr as Long
Addr = GetAddr (AddressOf TestSub)
End Sub

The error is for Test Sub
Tnx







Tim Zych

AddressOf
 
In the VBE - Insert - Module.


--
Regards,
Tim Zych
http://www.higherdata.com
Workbook Compare - Excel data comparison utility

"E.Z." wrote in message
...
Tnx a lot,
What do you mean by "regular code module"?

"Tim Zych" <tzych@nospam at earthlink dot net wrote in message
...
I don't have much experience with AddressOf, but from what I can see, if
TestSub is moved to a regular module that should fix it.

From my book "VB and VBA In a Nutshell" by Paul Lomax:

AddressOf Operator
Rules at a Glance:
"The callback function must be stored in a code module; attempting to
store it in a class or form module generates a compile-time error,
"Invalid use of AddressOf operator."

When I tested your code, with TestSub moved to a regular code module, it
worked.


--
Regards,
Tim Zych
http://www.higherdata.com
Workbook Compare - Excel data comparison utility

"E.Z." wrote in message
...
Hello,
Doe's "AddressOf" works with Excel macros?
I keep getting a Compile Error for using it.
"Invalid use of AddressOf operator"

This is the code:

Private Sub TestSub()
i = 0
End Sub

Private Function GetAddr(ByVal Addr As Long) As Long
GetAddr = Addr
End Function

Private Sub Test()
Dim Addr as Long
Addr = GetAddr (AddressOf TestSub)
End Sub

The error is for Test Sub
Tnx









E.Z.

AddressOf
 
Yup, got it. works.
Tnx again




All times are GMT +1. The time now is 02:04 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com