1
在Google表格中,我使用了一個腳本來爲每個提交的Google表單創建一個新工作表。它應該創建一個名稱基於最後一列G列的新工作表(不是表單提交的列)。然後它從最後一行和標題行獲取信息並將其複製到創建的工作表的前兩行。它還將公式添加到單元格中,以便將信息放入列(轉置)並基於創建的表格進行格式化。使用基於表單提交的名稱創建新工作表
現在它正在創建工作表並複製公式和格式,但沒有給出正確的名稱或拉取最後一行信息。
請幫忙! 〜查爾斯
我已經複製下面的代碼:
function onFormSubmit() {
// onFormSubmit
// get submitted data
var ss = SpreadsheetApp.openById(
'...');
var sheet = ss.getSheetByName("Responses");
var headings = sheet.getRange(1,1,1,
sheet.getLastColumn()).getValues();
var lastRow = sheet.getRange(sheet.getLastRow(),1,1,
sheet.getLastColumn()).getValues();
var studentUsername = lastRow[0][6];
// check if username has sheet
if(ss.getSheetByName(studentUsername)){
var userSheet = ss.getSheetByName(studentUsername);
// if not make
} else {
var userSheet = ss.insertSheet(studentUsername);
userSheet.getRange(1,1,1,
headings[0].length).setValues(headings);
}
// copy submitted data to user's sheet
userSheet.appendRow([lastRow]);
userSheet.appendRow(['=CONCATENATE(B6," ",B5)']);
userSheet.appendRow(['=TRANSPOSE(B1:2)']);
userSheet.hideRows(1,2);
userSheet.setColumnWidth(1, 500);
userSheet.setColumnWidth(2, 500);
var FormatSheet = ss.getSheetByName("Format");
var FormatRange = FormatSheet.getRange("a3:b28");
FormatRange.copyFormatToRange(userSheet,1,3,3,28);
}
我想你最好通過id來打開此。 'var ss = SpreadsheetApp.getActiveSpreadsheet();'當表單提交併且電子表格不活躍時,會不會有次? – Cooper
我想你可以在這裏使用appendRow:'userSheet.getRange(userSheet.getLastRow()+ 1,1,1, lastRow [0] .length).setValues(lastRow);' – Cooper
我想也許這個'userSheet.getRange (userSheet.getLastRow()+ 1,1,1,lastRow [0] .length).setValues(lastRow);'應該是這個'userSheet.getRange(userSheet.getLastRow()+ 1,1,1,lastRow.length ).setValues(lastRow);' – Cooper