我可以使用(lastCell,getValue)中的值作为范围的值吗?

时间:2017-03-15 15:52:55

标签: google-apps-script google-sheets

我正在运行一个函数,我试图找到最后一行的值,工作表的最后一列,并将此值用作范围值的一部分。在我的测试表中,最后一列,最后一行的值是数字3。 第45和46行来自我在同一张纸上使用的另一个功能,用于重命名活动纸张。此功能正常工作,即脚本找到数字3并将活动工作表重命名为3。 第56行显示使用静态值时脚本正常工作。 第57行是我尝试使用getLastRow和getLastColumn方法将此数字作为getRange值的一部分插入。当我运行此脚本时,它会抛出错误“未找到范围”。 第55行的“Logger.log”值为3.0,表明脚本正在运行到那一点。我的结论是错误来自第57行。 问题: 1.我是否尝试使用(lastCell,getValue())值来做一些无法完成的事情?如上所述,该值为3.0而不仅仅是3,但这适用于第45和46行。 2.如果可以这样做,我是否错误地格式化了信息?我还尝试通过添加“+”符号将第57行写为('A:A +(lastCell.getValue())')。 谢谢你的帮助!

45  // SpreadsheetApp.setActiveSheet(ss.getSheetByName('Copy of Sheet1'));  
46  // SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(lastCell.getValue()); This works OK!!!
47  //
48  // Next need to make the next row have columnA and last Column data added
49  //
50  var ss = SpreadsheetApp.getActiveSpreadsheet();
51  var sheet = ss.getSheetByName('Master FCR Listing');//ss.getSheets()[1];
52  var lastColumn = sheet.getLastColumn();
53  var lastRow = sheet.getLastRow();
54  var lastCell = sheet.getRange(lastRow, lastColumn);
55  Logger.log(lastCell.getValue());// Shows a value of 3.0 ??  This the problem?? 
56  //*  sheet.getRange('A:A3').copyTo(sheet.getRange('A:A4')); //. This works!
57  sheet.getRange('A:A(lastCell.getValue())').copyTo(sheet.getRange('A:A4'));//A4 will be +1!

2 个答案:

答案 0 :(得分:0)

替换

sheet.getRange('A:A(lastCell.getValue())') 

sheet.getRange('A:A'+(lastCell.getValue()))

以字符串格式传递范围。

答案 1 :(得分:0)

您将lastCell.getValue()作为字符串传递,因为您没有关闭引号。

sheet.getRange('A:A(lastCell.getValue())')

您应该在调用lastCell之前关闭引号:

sheet.getRange('A:A' + lastCell.getValue())