求谷歌表格中实现鼠标点击增减单元格值的等效Apps Script代码
Google Sheets 实现双击/右键调整单元格数值(对应Excel VBA等效代码)
实现说明
Google Sheets 使用 Apps Script 替代 Excel 的 VBA,以下是对应需求的代码:双击A1:A100范围内的单个单元格时,自动减少0.05并阻止默认编辑;右键点击该区域单元格时,通过自定义菜单选项增加0.05。
完整代码
// 处理双击事件:减少0.05 function handleDoubleClick(e) { const range = e.range; // 仅处理单个单元格 if (range.getNumRows() > 1 || range.getNumColumns() > 1) return; const sheet = range.getSheet(); const targetArea = sheet.getRange("A1:A100"); // 检查是否在目标区域内 if (!targetArea.intersects(range)) return; // 阻止默认双击进入编辑模式 e.preventDefault(); // 更新数值(空单元格视为0) const currentValue = range.getValue() || 0; range.setValue(currentValue - 0.05); } // 打开表格时创建自定义右键菜单 function onOpen() { SpreadsheetApp.getUi() .createMenu("数值调整") .addItem("增加0.05", "handleRightClick") .addToUi(); } // 处理右键菜单点击:增加0.05 function handleRightClick() { const range = SpreadsheetApp.getActiveRange(); // 仅处理单个单元格 if (range.getNumRows() > 1 || range.getNumColumns() > 1) return; const sheet = range.getSheet(); const targetArea = sheet.getRange("A1:A100"); // 检查是否在目标区域内 if (!targetArea.intersects(range)) return; // 更新数值(空单元格视为0) const currentValue = range.getValue() || 0; range.setValue(currentValue + 0.05); }
设置步骤
- 打开你的Google Sheets,点击顶部菜单「扩展程序」→「Apps Script」
- 将上述代码粘贴到脚本编辑器,保存项目(随意命名即可)
- 点击左侧的「触发器」图标(时钟样式),添加新触发器:
- 选择函数:
handleDoubleClick - 事件源:从电子表格
- 事件类型:双击
- 保存并完成授权(首次授权需点击「高级」→「转到项目」完成验证)
- 选择函数:
使用方法
- 减少数值:双击A1:A100内的单个单元格,自动减0.05,不会进入编辑模式
- 增加数值:右键点击A1:A100内的单个单元格,选择「数值调整」→「增加0.05」即可
内容的提问来源于stack exchange,提问作者Martha
相关产品推荐
相关产品推荐

