我已经制作了一个宏,用于将数字格式单元格更改为AlHijri Calendar,并通过OnKey方法对其进行了调用。 但是当按下按键时,会出现“保存”对话框,然后执行了宏。我尝试了很多按键。
Sub ToHijri()
With Selection
.NumberFormat = "[$-1970000]B2dd/mm/yyyy;@"
End With
Dim Cel As Range
Dim Selectedr As Range
Set Selectedr = Application.Selection
For Each Cel In Selectedr.Cells
SendKeys "{f2}"
SendKeys "{enter}"
Next Cel
'ThisWorkbook.Save
End Sub
这是一段用于调用宏的代码:
Private Sub Workbook_Activate()
Application.OnKey "%h", "ToHijri"
End Sub
任何防止显示保存对话的建议。谢谢。
答案 0 :(得分:1)
我无法复制打开保存对话框的行为,可能是您的办公室区域/语言设置。
但是我发现,要禁用Alt +命令的默认行为,您必须通过excel 4宏隐藏功能区。
我的建议是考虑使用ctrl或其他按键代替Alt。
在这里,他们说不可能仅禁用alt键: https://techcommunity.microsoft.com/t5/Excel/VBA-for-deactivating-just-the-ALT-key/td-p/203577
查看具有解决方法的代码:
Private Sub Workbook_Activate()
' Assign the macro to Alt + H
Application.OnKey "%h", "RunMacroName"
' Hide the Ribbon
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"
End Sub
Private Sub Workbook_Deactivate()
' Back top it's normal state
Application.OnKey "%h"
' Show back the Ribbon
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"
End Sub
答案 1 :(得分:0)
问题在于,SendKeys "{F2}"
与OnKey
结合使用时,如果同时使用Shift或Alt或Ctrl,则无法正常工作。非常感谢使用F3和OnKey来解决问题。