我正在尝试创建一个脚本,以便在提交表单并将数据添加到链接的Google表格(工作表名称“ IIR”)时将“事件”号添加到“事件号”列(第1列)中列4中的新数据。第一行包含工作表标题(由表单中的问题开发)。我从其他来源窃取了具有相同意图的脚本,该脚本运行没有错误,但是我没有得到期望的结果(我是Newbee)。
//CORE VARIABLES
// The column you want to check if something is entered.
enter code here var COLUMNTOCHECK = 4; // Where you want the date time stamp offset from the input location. [row, column]
var ADDNUMBER = [1,1]; // Sheet you are working on
var SHEETNAME = "IIR"
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("IIR"); //checks that we're on the correct sheet.
if( sheet.getSheetName() == SHEETNAME ) {
var selectedCell = ss.getActiveCell(); //checks the column to ensure it is on the one we want to cause the number to appear.
if( selectedCell.getColumn() == COLUMNTOCHECK) {
var IncidentNumber = selectedCell.offset(ADDNUMBER[1],ADDNUMBER[1]);
for (r=1; r<999; r++) {
ss.getRange(r,1).setValue(r);
}
}
}}
答案 0 :(得分:0)
将事件编号附加到链接表中的时间戳记
此功能将添加一个事件编号,该事件编号由时间戳组成,方法是使用两位数的年份,两位数的月份,两位数的日期,破折号和连续的递增数字。它还保留时间戳,并将事件编号添加到单元格的底部。
function formSubmit(e) {
if(e.values && e.values[1]) {
Logger.log(JSON.stringify(e));
var sh=e.range.getSheet();
sh.getRange(e.range.rowStart,1).setValue(getIncidentNumber(e));
}
}
function getIncidentNumber(e) {
var ps=PropertiesService.getScriptProperties();
var ts=e.values[0];
var key=Utilities.formatString('%s%s%s',ts.slice(8,10),ts.slice(0,2),ts.slice(3,5));
if(ps.keys && ps.getKeys().indexOf(key)==-1) {
ps.setProperty(key,1);
return key + "-" + 1;
}else{
var value=ps.getProperty(key);
ps.setProperty(key, Number(value) + 1)
var rv = ts + '\n' + key + "-" + Number(value).toFixed();
return rv;
}
}
答案 1 :(得分:0)
如果要从工作表中获取Incident number
,则应从表格中打开脚本编辑器。这样,脚本将被绑定到实际的表单。
然后,您应该使用以下脚本:
var DESTINATION_SS_ID = "YOUR_DESTINATION_SHEET_ID";
function onFormSubmit(e) {
var incidentNumber = e.response.getItemResponses()[2].getResponse();
var ss = SpreadsheetApp.openById(DESTINATION_SS_ID);
ss.appendRow([incidentNumber]);
}
该脚本使用的是installable trigger,而不是像您那样遍历表单中的有界工作表,而是直接从表单中获取响应,并将其添加到所需的表单中电子表格。这是通过使用onFormSubmit
可安装触发器来完成的。
要安装触发器,请按照以下步骤操作:
要使触发器起作用,您/其他用户只需通过表单发送回复。通过使用.getItemResponses()
方法和之后的.getResponse()
方法获得结果,从本质上来说,该方法可以使您获得您/其他用户已发送的响应。然后,使用.appendRow()
方法将这些响应添加到工作表中;因此,每次在表单中提交新条目时,Incident number
都会自动添加到您的电子表格中。
此外,我建议您看一下这些链接,因为它们可能对您的未来发展有所帮助: