谷歌表格合并单元格



我正在为家谱创建一个电子表格。每个人都有一排,连续的人都可以有结婚日期。我想合并F列(结婚日期列(中的单元格,以获得数千个潜在的配对。我的代码是:-

function mergeMarriageCells() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var data = ss.getDataRange().getValues();

for (var i = 1; i < data.length; i += 2) {
ss.getRange(i, 5, 2, 1).mergeVertically();
}
}

这在第6行中给了我一个错误,这个错误以ss.getRange开头

"异常:参数(String、number、number、number(不匹配SpreadsheetApp的方法签名。电子表格.getRange(第6行,文件";代码"(&";。

然而,i已初始化为1,因此应理解为整数,而不是字符串。

顺便说一下,第一行包含标题,因此循环从1开始。

问题:

电子表格对象没有getRange方法。后者是Sheet对象的一种方法。


解决方案:

  1. 修改代码以考虑工作表而不是电子表格

你有以下方法可以做到这一点:

var sh = ss.getSheetByName('Sheet1');
var sh = ss.getSheets()[0] // 0 means first sheet, 1 means second sheet
var sh = ss.getActiveSheet(); // the sheet that is currently selected in the file

根据您的目标,从这三个选项中选择一个。请参阅参考一节,了解它们各自的作用,以找到最适合您的选项。

  1. 最后,如果要合并列F中的单元格,则需要在getRange的第二个参数中选择6而不是5(第E列(

结果:

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Sheet1');
// var sh = ss.getSheets()[0] // 0 means first sheet
// var sh = ss.getActiveSheet(); // the sheet that is currently selected
var data = sh.getDataRange().getValues();
for (var i = 1; i < data.length; i += 2) {
sh.getRange(i, 6, 2, 1).mergeVertically();
}

}

请根据您的具体情况修改Sheet1


参考文献:

  • getSheetByName(name(
  • getSheets((
  • getActiveSheet((

最新更新