出现这种情况可能是因为保存Excel工作簿时,窗体的焦点丢失导致了对TAB和KeyDown事件的错误响应。可以尝试以下解决方法:
isSaving
,默认为False
。Private isSaving As Boolean
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
' 标记为正在保存
isSaving = True
' 处理其他按键事件
' ...
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
' 还原标记
isSaving = False
End Sub
' Excel VBA 代码
Sub SaveWorkbook()
' 判断窗体是否正在保存
If UserForm1.isSaving Then
' 取消窗体焦点
UserForm1.Hide
End If
' 保存工作簿
ThisWorkbook.Save
' 恢复窗体焦点
UserForm1.Show
End Sub
通过以上方法,可以解决在保存Excel工作簿时导致用户窗体对TAB和KeyDown事件的错误响应的问题。