在我的参数集中找不到sheet.getRange

sheet.getRange is not found with my set of parameter

本文关键字:sheet getRange 找不到 集中 我的 参数      更新时间:2023-09-26

我试图在谷歌电子表格上运行一个脚本,以加快一系列重复操作。根据文档,我可以使用四个数值参数getRange重载访问一系列数据。我的问题是,当我运行脚本时,谷歌会说找不到getRange(Number,Number,Number)并停止脚本。

这是代码:

function addMonth(){
  var month = ["Janvier","Février","Mars","Avril","Mai","Juin",
               "Juillet","Août","Septembre","Octobre","Novembre","Décembre"];
  var days = ["po","wr","sr","cz","pl","so","nd"];
  var dateString = Browser.inputBox('Enter the month with format "mm-yyyy"');
  var date = new Date(dateString.split("-")[1],dateString.split("-")[0]-1,1);
  var dateFin = new Date(dateString.split("-")[1],dateString.split("-")[0]-1,0);
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var pos =sheet.getLastColumn();
  sheet.insertColumnsAfter(pos,dateFin.getDate());
  var monthRange = sheet.getRange(1,parseInt(pos+1),1,parseInt(dateFin.getDate()));
  monthRange.merge();
  monthRange.setValue(month[dateDebut.getMonth()]);
  var daysOfMonth = [];
  for(var i=1;i<=dateFin.getDate();i++){
    daysOfMonth.push(days[date.getDay()+(i%7)-1]);
  }
  sheet.getRange(2,parseInt(pos+1),1,parseInt(dateFin.getDate())).setValues(daysOfMonth);
}

错误消息说的是实话。您的变量sheet属于Class Spreadsheet,它没有方法getRange(row, column, numRows, numColumns),即Class Sheet的方法。

更改变量sheet的赋值以确保其类型正确:

var sheet = SpreadsheetApp.getActiveSheet();

在编写脚本时,请注意自动完成功能,这将有助于避免此错误。有关更多详细信息,请参阅前面的回答。