Google apps script I';我正在尝试将脚本改编为;提交;将多个单元格添加到另一张工作表中,该工作表在单元格A5中命名

Google apps script I';我正在尝试将脚本改编为;提交;将多个单元格添加到另一张工作表中,该工作表在单元格A5中命名,google-apps-script,google-sheets,Google Apps Script,Google Sheets,有关的电子表格- A5中的值表示应将数据提交到哪张表 我对脚本编写还不熟悉,并且已经找到了一段简单的代码,看起来它会起到作用,但是因为我不理解其中的一部分,所以无法将其应用到我的工作表中 function submitData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Tool Life"); var range = sheet.getRan

有关的电子表格-

A5中的值表示应将数据提交到哪张表

我对脚本编写还不熟悉,并且已经找到了一段简单的代码,看起来它会起到作用,但是因为我不理解其中的一部分,所以无法将其应用到我的工作表中

function submitData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Tool Life");
  var range = sheet.getRange(1,5)
  var data = range.getValue()
  var datasheet = ss.getSheetByName(data);
  
  //Input Values
  var values = [[sheet.getRange("B5").getValue(),   //tool
                 sheet.getRange("C5").getValue(),   //reason
                 sheet.getRange("D5").getValue(),   //replaced
                 sheet.getRange("E5").getValue(),   //current
                 sheet.getRange("F5").getValue(),   //new
                 sheet.getRange("G5").getValue(),   //from length
                 sheet.getRange("H5").getValue(),   //to length
                 sheet.getRange("I5").getValue(),   //from diameter
                 sheet.getRange("J5").getValue(),   //to diameter
                 sheet.getRange("K5").getValue(),   //where used
                 sheet.getRange("L5").getValue(),   //flagged
                 sheet.getRange("M5").getValue(),   //set to measure
                 sheet.getRange("N5").getValue(),   //name
                 sheet.getRange("O5").getValue(),   //date
                 sheet.getRange("P5").getValue()]]; //comments
                 
  
  datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 15).setValues(values);
}
我不明白最后一行代码上的数字是什么。我假设15代表列数或条目数

我猜测我可以在这一行中使用变量“data:
var datasheet=ss.getSheetByName(data)但因为它不起作用,我不能玩它。

说明: 你很接近

  • 根据您提供的电子表格,您需要获取单元格 刀具寿命表的A5。您正在调用
    sheet.getRange(1,5)
    ,但这会给出cellE1。你应该使用
    sheet.getRange(5,1)
    sheet.getRange('A5')
    以获取正确的单元格

  • 最好参考
    值的长度,而不是硬拷贝范围。用它来代替:

    datasheet.getRange(datasheet.getLastRow()+1, 1, values.length, values[0].length).setValues(values);
    

解决方案:
参考资料:
相关:
function submitData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Tool Life");
  var range = sheet.getRange(5,1);
  var data = range.getValue();
  var datasheet = ss.getSheetByName(data);
  
  //Input Values
  var values = [[sheet.getRange("B5").getValue(),   //tool
                 sheet.getRange("C5").getValue(),   //reason
                 sheet.getRange("D5").getValue(),   //replaced
                 sheet.getRange("E5").getValue(),   //current
                 sheet.getRange("F5").getValue(),   //new
                 sheet.getRange("G5").getValue(),   //from length
                 sheet.getRange("H5").getValue(),   //to length
                 sheet.getRange("I5").getValue(),   //from diameter
                 sheet.getRange("J5").getValue(),   //to diameter
                 sheet.getRange("K5").getValue(),   //where used
                 sheet.getRange("L5").getValue(),   //flagged
                 sheet.getRange("M5").getValue(),   //set to measure
                 sheet.getRange("N5").getValue(),   //name
                 sheet.getRange("O5").getValue(),   //date
                 sheet.getRange("P5").getValue()]]; //comments
                 
  
  datasheet.getRange(datasheet.getLastRow()+1, 1, values.length, values[0].length).setValues(values);
}