1
세 가지 기능을 수행하는 스크립트 (결합)가 있습니다. 첫째, 양식 응답을 행 (분할)로 분할 한 다음 응답을 사전 순 (정렬)으로 정렬하고 마지막으로 특정 열의 빈 셀을 포함하는 행을 삭제해야합니다. 나는 스크립트를 사용하는 것에 상당히 익숙하지만이 작업을했다고 생각합니다. 지금, 그것을 실행하거나 디버깅하려고하면 "ReferenceError : sort"가 정의되어 있지 않습니다. (3 행의 "Combined"파일) 상당히 간단한 설명이있을 것입니다. 변화, 개방, 제출 양식에서 실행됩니다. 검토하고 제안을 제공하고자Google Script Reference 오류 기능이 정의되지 않았습니다.
누구를? 그것의 나머지는 작동하는 것 같군.
function combined() {
SPLIT();
sort();
deleteRows();
function SPLIT() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh0 = ss.getSheets()[0], sh1 = ss.getSheets()[1];
// get data from sheet 2
var data = sh1.getDataRange().getValues();
// create array to hold data
var aMain = new Array();
// itterate through data and add to array
// j=3 is the column it starts to loop with, j<9 tells it where to stop.
// in the aMain.push line, use data[i][j] for the rows to search and put in the one column.
// in the last line, change the last number to equal the number of columns in your final sheet.
// the first number in getrange is the row the data starts on... not sure about the 1.
for(var i=1, dLen=data.length; i<dLen; i++) {
for(var j=5; j<9; j++) {
aMain.push([data[i][0],data[i][1],data[i][2],data[i][3],data[i][4],data[i][j]]);
}
// add array of data to first sheet
sh0.getRange(2, 1, aMain.length, 6).setValues(aMain);
}
function sort() {
/** Variables for customization:
Each column to sort takes two variables:
1) the column index (i.e. column A has a colum index of 1
2) Sort Asecnding -- default is to sort ascending. Set to false to sort descending
**/
//Variable for column to sort first
var sortFirst = 3; //index of column to be sorted by; 1 = column A, 2 = column B, etc.
var sortFirstAsc = true; //Set to false to sort descending
//Variables for column to sort second
var sortSecond = 2;
var sortSecondAsc = true;
//Variables for column to sort third
var sortThird = 6;
var sortThirdAsc = true;//Number of header rows
var headerRows = 1;
/** End Variables for customization**/
/** Begin sorting function **/
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh0 = ss.getSheets()[0];
var range = sh0.getRange(headerRows+1, 1, sh0.getMaxRows()-headerRows, sh0.getLastColumn());
range.sort([{column: sortFirst, ascending: sortFirstAsc}, {column: sortSecond, ascending: sortSecondAsc}, {column: sortThird, ascending: sortThirdAsc},]);
function deleteRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// get data from the first sheet - the first sheet start with 0, we can also name a specific sheet by name but that's a little different setup.
var sh0 = ss.getSheets()[0];
var rows = ss.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[5] == 'delete' || row[5] == '') { // This searches all cells in column (change to row[1] for columns B and so on) and deletes row if cell is empty or has value 'delete'.
sh0.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
}
}
}
}
정렬에서 닫는 괄호가 누락 되었습니까? – OblongMedulla