如何制作getA1Notation& setName一起工作?

时间:2018-01-24 13:32:55

标签: google-apps-script google-sheets

所以我有以下脚本,我使用lastRow和lastColum创建一个var lastCell(sh.getRange(lastRow, lastColumn();),然后我尝试重命名工作表以匹配该值。因为它是一个字符串,我知道我必须使用getA1Notation,所以我尝试了var SheetName = last.Cell.getA1Notation();,然后尝试了setName(SheetName),但这似乎没有做到这一点。有什么想法吗?

function onSubmit(e){
  var ss = e.source;
  var templateSheet = ss.getSheetByName('Template');
  var sh = ss.getActiveSheet();
  var row = sh.getActiveRange().getRowIndex();
  var col = sh.getActiveRange().getColumnIndex();
  var activeRange = sh.getActiveRange().getA1Notation();
  var lastRow = sh.getLastRow();
  var lastColumn = sh.getLastColumn();
  var lastCell = sh.getRange(lastRow, lastColumn);
  var SheetName = lastCell.getA1Notation();

  var newSheet = ss.insertSheet(1, {template: templateSheet});
  newSheet.setName(SheetName);
  newSheet.showSheet();
  newSheet.appendRow(e.values); 

1 个答案:

答案 0 :(得分:0)

首先,onSubmit触发器仅在提交表单时运行。您无法从编辑器的上下文中运行它。如果将其更改为通用函数并运行脚本,它将按照您的描述工作,将新名称设置为页面上最后一个单元格的A1表示法。

如果你想要 这个单元格,你就不会得到任何东西的价值。对于SheetName,您只能使用.getA1Notation获取单元格位置。如果您想要单元格内的值,请将其更改为:

var lastCell = sh.getRange(lastRow, lastColumn);  // get the cell
var SheetName = lastCell.getValue();              // return the string value

设置该字符串现在将您创建的新工作表重命名为单元格中的值。