首页 > 解决方案 > VBA 在 Workbook_Open 上更改工作簿的 Excel 光标

问题描述

有什么方法可以更改特定工作簿的 Excel 光标?找不到任何解决方案。

我的工作簿因编辑单元格而被锁定,只有某些单元格可用,我想替换此 Excel 光标:

在此处输入图像描述

通过指针:

在此处输入图像描述

我经历过这个但不明白是否可以在工作簿中实现它? https://docs.microsoft.com/en-us/office/vba/api/excel.application.cursor

Private Sub Workbook_Open()
Application.Cursor = xlDefault
End Sub

标签: excelvba

解决方案


ThisWorkbook代码模块中,你可以做这样的事情。这里的想法是我们在工作簿打开时捕获初始光标样式(Workbook_Open事件调用changeCursor将当前光标样式存储在cursor变量中。然后我们添加更多的事件处理程序,以便当工作簿失去焦点时(Workbook_Deactivate)和之前closes ( Workbook_BeforeClose) 我们通过该方法将该光标恢复为以前的样式resetCursor。可能还有我没有考虑过的其他边缘情况,但这是您需要实现的一般想法。

Option Explicit
Private cursor As Long

Private Sub Workbook_Activate()
changeCursor
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
resetCursor
End Sub

Private Sub Workbook_Deactivate()
resetCursor
End Sub

Private Sub Workbook_Open()
changeCursor
End Sub

Private Sub changeCursor()
cursor = Application.cursor
Application.cursor = xlNorthwestArrow
End Sub
Private Sub resetCursor()
On Error Resume Next
Application.cursor = cursor
If Err.Number <> 0 Then
    Application.cursor = xlDefault
End If
End Sub

推荐阅读