LibreOffice Calc如何区分单元格编辑/工作表模式的Ctrl+A快捷键
实现方案
直接修改宏代码增加编辑状态判断即可,无需拆分多套快捷键配置,单个宏绑定Ctrl+A就能自动适配两种场景的操作需求。
完整宏代码
Sub CtrlAHandler Dim oController As Object Dim oDispatch As Object oController = ThisComponent.CurrentController ' 判断当前是否处于单元格编辑模式 If oController.isCellEditMode Then ' 编辑模式下调用原生全选命令,选中单元格内全部文本 oDispatch = CreateUnoService("com.sun.star.frame.DispatchHelper") oDispatch.executeDispatch(oController.Frame, ".uno:SelectAll", "", 0, Array()) Else ' 工作表选中模式下执行原有数值+1逻辑 oController.Selection.Value = oController.Selection.Value + 1 End If End Sub
配置说明
- 替换原有绑定到
Ctrl+A的旧宏为上述新宏即可,无需修改其他系统快捷键设置 - 非编辑状态下,快捷键行为和你之前使用的加1宏完全一致,支持批量给选中的多个数值单元格加1
- 进入单元格编辑状态后,快捷键会自动触发原生的单元格内全选功能,不会执行数值修改操作,和默认编辑态
Ctrl+A的表现完全相同
内容的提问来源于stack exchange,提问作者Vedran Šego
相关产品推荐
相关产品推荐

