2017-05-02 4 views
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++; 
    } 
    } 
} 
} 
} 
} 
+0

정렬에서 닫는 괄호가 누락 되었습니까? – OblongMedulla

답변

0

닫는 브라켓없는

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},]); 
 
    
 
    }

관련 문제