Excel宏创建快捷键后,如何撤销跨单元格文本居中操作?
嘿,我懂你碰到的这个糟心事——用Excel录制宏做了跨单元格居中的快捷键,结果按Ctrl+Z居然撤不回来!这其实是因为默认录制的宏不会把操作加入Excel的撤销队列里,不过咱们有两种办法能解决这个问题,看你偏好哪种:
方法1:修改宏代码,给操作加上撤销支持
首先打开宏编辑器(按Alt+F11),找到你录制的那个宏。你录出来的原始代码大概是这样的:
Sub CrossCellCenter() Selection.HorizontalAlignment = xlCenterAcrossSelection End Sub
要让它支持撤销,咱们得加一段代码来定义撤销逻辑,修改后的代码如下:
' 把这个变量放在模块最顶部(所有Sub外面),让两个宏都能访问到 Dim originalAlignment As XlHAlign Sub CrossCellCenter() ' 先记录选中单元格当前的对齐状态,方便撤销时恢复 originalAlignment = Selection.HorizontalAlignment ' 执行跨单元格居中操作 Selection.HorizontalAlignment = xlCenterAcrossSelection ' 告诉Excel,这个操作可以撤销,指定撤销时触发的宏和提示文字 Application.OnUndo "撤销跨单元格居中", "UndoCrossCenter" End Sub ' 专门用来处理撤销的宏 Sub UndoCrossCenter() ' 恢复之前记录的对齐状态 Selection.HorizontalAlignment = originalAlignment End Sub
修改完保存后,再用快捷键执行宏,之后按Ctrl+Z就能正常撤销这个居中操作了。
方法2:直接给原生命令绑定快捷键(更省心)
其实Excel本身就自带跨单元格居中的原生命令,这个原生命令是支持Ctrl+Z撤销的,完全没必要用录制宏的方式,直接给它设快捷键就行:
- 点击「文件」>「选项」>「自定义功能区」,然后点击底部的「自定义...」按钮(就在键盘快捷方式那栏)
- 在弹出的窗口里,「类别」选「对齐方式」,「命令」里找到「Center Across Selection」
- 在「请按新快捷键」输入框里按下你想要的组合键(比如Ctrl+Shift+C),点击「指定」,最后确定就行。
用这个方式设置的快捷键调用的是Excel原生功能,执行后按Ctrl+Z自然就能撤销,比改宏代码简单多了。
内容的提问来源于stack exchange,提问作者Tejo Gedela
相关产品推荐
相关产品推荐

