0

새 입력을 다양한 시트에 자동으로 정렬하는 간단한 스크립트를 작성했지만이 두 개의 첫 번째 시트를 제외하고 싶습니다.스크립트에서 시트를 제외하는 방법

function onEdit(){ 
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var editedCell = sh.getActiveRange().getColumnIndex(); 

    if(editedCell == 2) { 

    var range = sh.getRange("A3:P20"); 
    range.sort({column: 2}); 
    } 
} 

내가 처음 두 장에서 작업하는 동안 .getActiveSheet()를 사용한다면, 스크립트는 일이다,하지만 원치 않는 할 줘야 : 여기 내 스크립트입니다. 스크립트를 중단하고 일시 중지 할 수 있습니까? 답장을 보내 주셔서 감사합니다. 토니

+0

안녕하세요 난 당신이, 덮어 쓰기 "훅"기능과을하거나 false를 돌려 첫 번째 줄에 추가하려고 정확히 몰라.; 직장을 그만두기. –

답변

0

이렇게하면 첫 번째 두 장이 사용되지 않게됩니다. 당신이 그들을 움직이면 처음 두 장이 바뀔 것이기 때문에 당신은 또한 그들의 이름을 사용할 수 있습니다. 함수 isOneOfTheFirstTwo 대하여 설명한다 :

function onEdit(e){ 
    if(!isOneOfFirstTwo(e.source.getActiveSheet())) 
    { 
    var editedCell = sh.getActiveRange().getColumnIndex(); 
    if(editedCell == 2) 
    { 
     var range = sh.getRange("A3:P20"); 
     range.sort({column: 2}); 
    } 
    } 
} 

아래 함수는 모든 스프레드 시트 배열을 취득하고, 스프레드 시트의 왼쪽에있는 두 장의 제 처음 두 보인다. 이동하면 처음 두 장이 바뀝니다. 어떤 방법 으로든 처음 두 가지를보고 질문을한다. sh.getName() == allSheets [i] 첫 번째 두 가지 중 하나라도 그렇다면 함수는 true를 반환하고 그렇지 않으면 false를 반환한다. 루프가 처음 두 시트를 지나치지 않습니다.

function isOneOfFirstTwo(sh) 
{ 
    var allSheets=SpreadsheetApp.getActive().getSheets(); 
    var r=false; 
    for(var i=0;i<2;i++) 
    { 
    if(sh.getName()==allSheets[i].getName()) 
    { 
     r=true; 
     break; 
    } 
    } 
    return r; 
} 
0

감사합니다. 저는 초심자이고 코드를 제 위치에 넣으려고했으나 디버깅하는 동안 오류가 발생합니다. 스크립트를 완전히 제 위치에 둘 수 있습니까? 나는 그것을 얻기 위해 노력하고 실수를 생각

function isOneOfFirstTwo(sh) 
{ 
    var allSheets=SpreadsheetApp.getActive().getSheets(); 
    var r=false; 
    for(var i=0;i<2;i++) 
    { 
    if(sh.getName()==allSheets[i].getName()) 
    { 
     r=true; 
     break; 
    } 
    } 
    return r; 
} 

function onEdit(){ 
    if(!isOneOfFirstTwo(e.source.getActiveSheet())) 
    { 
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var editedCell = sh.getActiveRange().getColumnIndex(); 

    if(editedCell == 2) { 

    var range = sh.getRange("A3:P20"); 
    range.sort({column: 2}); 
    } 
} 
} 
관련 문제