我正在使用setWindowHookEx,它工作正常:
Private HookHandle As LongPtr
Sub RemoveHook()
UnhookWindowsHookEx HookHandle
End Sub
Sub SetHook()
Dim lThreadID As LongPtr
lThreadID = GetCurrentThreadId
HookHandle = SetWindowsHookEx(WH_MOUSE, AddressOf foo, 0, lThreadID)
End Sub
Public Function foo(ByVal nCode As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
foo = CallNextHookEx(0, nCode , wParam, lParam)
End Function
Run Code Online (Sandbox Code Playgroud)
我的问题是:当任何未处理的错误(来自任何其他宏)发生,并且我必须结束宏时,Excel崩溃并死亡.(我猜,那个钩子还活着,但是foo函数不再存在于内存中)
有没有办法防止Excel崩溃?
我在很多模块中使用它,我不想在任何地方进行错误处理.
我想检查 Excel 工作表是否受保护。我知道我可以检查.protectcontents,但是如果工作表像这样受到保护怎么办:
activesheet.protect contents:=false
Run Code Online (Sandbox Code Playgroud)
.protectcontents返回false但形状已锁定。请帮忙。