小编ing*_*rus的帖子

当Windows挂钩处于活动状态时,如何防止Excel因错误而崩溃?

我正在使用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 winapi vba excel-vba

5
推荐指数
0
解决办法
330
查看次数

如何检查 Excel 工作表是否受到保护?

我想检查 Excel 工作表是否受保护。我知道我可以检查.protectcontents,但是如果工作表像这样受到保护怎么办:

activesheet.protect contents:=false
Run Code Online (Sandbox Code Playgroud)

.protectcontents返回false但形状已锁定。请帮忙。

excel vba

1
推荐指数
1
解决办法
1195
查看次数

标签 统计

excel ×2

vba ×2

excel-vba ×1

winapi ×1