我正在尝试调整脚本以将多个单元格"submit"到另一个工作表,该工作表在单元格 A5 中命名



有问题的电子表格 - https://docs.google.com/spreadsheets/d/1t50ieV8dRvvyfsYVaxf_ZthToA-60dSW6xpjBNvVvA4/edit?usp=sharing

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)但会给出单元格E1。你应该使用sheet.getRange(5,1)sheet.getRange('A5')以获得正确的单元格。

  • 引用values的长度而不是硬拷贝范围总是一个好主意。请改用它:

    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);
}
>参考资料:
  • getRange()

相关内容

最新更新