根据另一单元格值合并谷歌表格单元格的Google App Script咨询
谷歌表格动态横向合并单元格实现方案
你可以通过谷歌表格自带的Apps Script实现该功能,操作步骤和代码如下:
- 打开目标谷歌表格,点击顶部菜单栏「扩展程序」->「Apps Script」进入脚本编辑器
- 粘贴以下代码后保存项目
function dynamicMergeHorizontalCells() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // 读取B4单元格的合并数量 const mergeCount = sheet.getRange("B4").getValue(); // 合法性校验 if (mergeCount < 1 || !Number.isInteger(mergeCount)) { SpreadsheetApp.getUi().alert("B4单元格请输入大于等于1的正整数"); return; } const targetRow = 13; const startCol = 3; // C列对应的列索引为3 // 先清空目标区域原有合并规则,避免冲突 sheet.getRange(targetRow, startCol, 1, mergeCount).breakApart(); // 执行横向合并 sheet.getRange(targetRow, startCol, 1, mergeCount).mergeAcross(); }
- 如需实现B4数值修改后自动触发合并,可额外添加以下触发代码:
function onEdit(e) { // 仅当编辑Sheet1的B4单元格时触发合并操作 if (e.range.getSheet().getSheetName() === "Sheet1" && e.range.getA1Notation() === "B4") { dynamicMergeHorizontalCells(); } }
注意事项
- 首次运行代码需要按页面提示完成权限授权
- 合并操作默认保留起始单元格C13的内容,区域内其余单元格内容会被清空,属于谷歌表格合并单元格的默认规则
- 如果B4输入非正整数会触发报错提示,避免非法操作
内容的提问来源于stack exchange,提问作者Benjamin Macias
相关产品推荐
相关产品推荐

