|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
在使用vsto为excel二次开发时,为一个workbook的SheetSelectionChange事件添加了事件处理程序:
- AddHandler Wkb.SheetSelectionChange, AddressOf Workbook_SheetSelectionChange
复制代码 这里Wkb的定义是:Private WithEvents Wkb As Excel.Workbook
事件处理程序是:
- <div>Private Sub Workbook_SheetSelectionChange(ByVal Sh As Excel.Worksheet, ByVal Target As Excel.Range) Handles Wkb.SheetSelectionChange</div><div>......</div><div>End Sub</div>
复制代码
然后想在另一个过程中删除事件处理程序:
- RemoveHandler Wkb.SheetSelectionChange, AddressOf Workbook_SheetSelectionChange
复制代码
但是出现了警告:
"AddressOf" 表达式在此上下文中不起作用,因为 "AddressOf" 的方法参数需要到该事件的委托类型的宽松转换。 这个警告中的AddressOf指的是RemoveHandler中的AddressOf。
然后我尝试了用变量:
- <div>Dim h As EventHandler = AddressOf Workbook_SheetSelectionChange</div><div>RemoveHandler Wkb.SheetSelectionChange, h</div>
复制代码
结果又出现错误:
EventHandler”的值无法转换为“WorkbookEvents_SheetSelectionChangeEventHandler
请问该怎么修改代码?
|
|