在 object 电子表格中找不到函数 setValues
Cannot find function setValues in object Spreadsheet
这条错误消息快把我逼疯了。这可能很简单,但我是新手。我感谢我能得到的任何帮助。
此计划适用于我们的员工通过 google 表格提交的设备检查。它应该从提交的 spreadsheet 中获取原始数据,检查是否有特定于该设备的 spreadsheet - 如果有,它应该制作一个新的 sheet有检查日期,如果没有,应该重新做一个spreadsheet,标题是设备的台号。然后我想将原始数据复制到新的 spreadsheet/sheet。
完成此部分后,我需要编写代码以将新 sheet 上的原始数据格式化为更具可读性和 user-friendly 的格式 - 但我还没有完成。
问题是当我尝试将标题值插入到新的 sheet(第 17 行)- "TypeError: Cannot find function setValues in object Spreadsheet. (line 17, file "代码")"
这是我目前的代码:
function onFormSubmit() {
// onFormSubmit
// get submitted data
var ss = SpreadsheetApp.openById("1PieNQjjgjsZIEhTwmzGN9BcUXPSscWnWnnYL8XvjpTA");
var sheet = ss.getSheetByName("Submissions");
var row = sheet.getLastRow();
var Col = sheet.getLastColumn();
var headings = sheet.getRange(1,1,1,Col).getValues();
var lastRow = sheet.getRange(row, 1, 1, Col);
var UnitNumber = sheet.getRange(row,3,Col).getValue();
// check if username has sheet
if(ss.getSheetByName(UnitNumber)){
var DrillSheet = ss.getSheetByName(UnitNumber);
// if not make
} else {
var DrillSheet = SpreadsheetApp.create(UnitNumber);
DrillSheet.getRange(1,1,1,Col).setValues(headings);
}
// copy submitted data to Drill sheet
DrillSheet.appendRow(lastRow.getValues()[0]);
DrillSheet.appendRow(['=CONCATENATE(B6," ",B5)']);
DrillSheet.appendRow(['=TRANSPOSE(B1:2)']);
}
提前感谢您的帮助。
创建新跨页sheet 时,您需要定义要将标题添加到的个人sheet。您需要使用 .getSheetByName()
获得 sheet object。第一个 sheet 总是称为 "Sheet1",因此您可以在脚本中通过名称获取它。一个简单的解决方法是将第 17 行更改为:
DrillSheet.getSheetByName('Sheet1')getRange(1,1,1,Col).setValues(headings);
这条错误消息快把我逼疯了。这可能很简单,但我是新手。我感谢我能得到的任何帮助。
此计划适用于我们的员工通过 google 表格提交的设备检查。它应该从提交的 spreadsheet 中获取原始数据,检查是否有特定于该设备的 spreadsheet - 如果有,它应该制作一个新的 sheet有检查日期,如果没有,应该重新做一个spreadsheet,标题是设备的台号。然后我想将原始数据复制到新的 spreadsheet/sheet。
完成此部分后,我需要编写代码以将新 sheet 上的原始数据格式化为更具可读性和 user-friendly 的格式 - 但我还没有完成。
问题是当我尝试将标题值插入到新的 sheet(第 17 行)- "TypeError: Cannot find function setValues in object Spreadsheet. (line 17, file "代码")"
这是我目前的代码:
function onFormSubmit() {
// onFormSubmit
// get submitted data
var ss = SpreadsheetApp.openById("1PieNQjjgjsZIEhTwmzGN9BcUXPSscWnWnnYL8XvjpTA");
var sheet = ss.getSheetByName("Submissions");
var row = sheet.getLastRow();
var Col = sheet.getLastColumn();
var headings = sheet.getRange(1,1,1,Col).getValues();
var lastRow = sheet.getRange(row, 1, 1, Col);
var UnitNumber = sheet.getRange(row,3,Col).getValue();
// check if username has sheet
if(ss.getSheetByName(UnitNumber)){
var DrillSheet = ss.getSheetByName(UnitNumber);
// if not make
} else {
var DrillSheet = SpreadsheetApp.create(UnitNumber);
DrillSheet.getRange(1,1,1,Col).setValues(headings);
}
// copy submitted data to Drill sheet
DrillSheet.appendRow(lastRow.getValues()[0]);
DrillSheet.appendRow(['=CONCATENATE(B6," ",B5)']);
DrillSheet.appendRow(['=TRANSPOSE(B1:2)']);
}
提前感谢您的帮助。
创建新跨页sheet 时,您需要定义要将标题添加到的个人sheet。您需要使用 .getSheetByName()
获得 sheet object。第一个 sheet 总是称为 "Sheet1",因此您可以在脚本中通过名称获取它。一个简单的解决方法是将第 17 行更改为:
DrillSheet.getSheetByName('Sheet1')getRange(1,1,1,Col).setValues(headings);