0

스프레드 시트에 기본적으로 "예"또는 "아니요"가있는 조건부 셀이 3 개인 조건부 체크 시트를 구현하려고했습니다. 내가 달성하고자하는 것 (onEdit 사용)은 세 개의 셀 모두에 "예"가 포함 된 것이고, 마지막 예가 입력 된 날짜와 함께 다음 열을 입력하십시오. 나는 잘 작동하는 다른 스크립트를 만들 수 있었지만,이 스크립트는 저를 곤혹스럽게합니다.Google 스프레드 시트 3 셀에 조건부

덕분에 세포가 개별적으로 편집 할 수 있기 때문에

+0

지금까지 무엇을 가지고 계셨습니까? 이 질문으로 무엇을 곤란하게했는지에 대한 정보를 제공하지 않았습니다. – Mogsdad

답변

1

모두가 "예"경우에만, 당신은 onEdit는 항상 조건부 세포의 모든 값을 확인하고 타임 스탬프를 작성해야합니다.

function onEdit(event) { 
    var conditionalCells = [ "B1", "B2", "B3" ]; // Array of monitored conditionals 
    var inList = false;       // assume edit was outside of the conditionals 
    var allYes = true;       // and that all values are "Yes". 
    var sheet = event.source; // Sheet that was edited 
    var cell = event.range.getA1Notation(); // get range description 
    // Loop through all conditionals checking their contents. 
    // Verify that the edit that triggered onEdit() was in one 
    // of our conditional cells, setting inList true if it was. 
    for (var i = 0; i < conditionalCells.length && allYes; i++) { 
    if (cell == conditionalCells[i]) inList = true; 
    allYes = (sheet.getRange(conditionalCells[i]).getValue() == "Yes"); 
    }; 
    // If this was our final Yes, record the date. 
    // By validating inList, we ensure we record only the first time 
    // all conditionals are "Yes". 
    if (inList && allYes) sheet.getRange("C1").setValue(new Date()); 
} 
+0

스크립트를 제공하지 않았기 때문에 사과드립니다. 제가 시도한 모든 것은 비참하게 실패했으며, 여러분이 위에 주신 것에는 아무 것도 없었습니다. 많은 감사드립니다. 이 줄에 오류가 발생하는 것 같습니다. var sheet = event.source; // 편집 된 시트 오류 메시지 : TypeError : 정의되지 않은 "source"속성을 읽을 수 없습니다. (5 행, 파일 "코드") - 죄송합니다.이 코드를 올바르게 포맷 할 수 없습니다! – Hyperjase

+0

'event'매개 변수는 함수가 편집에 의해 트리거 될 때 제공됩니다. 디버거에서 실행하면 '이벤트'가 없습니다. [이 질문] (http://stackoverflow.com/questions/16089041/how-can-i-test-a-trigger-function-in-gas)을 참조하십시오. – Mogsdad

+0

아 그래, 고마워, 나는 너무 무언가를 발견했다. 배열에 B1, B2 및 B3을 지정하고 작은 문제를 발견했으며 D, E 및 F를 확인해야하는 열을 찾은 다음 G 열에 날짜를 입력합니다. 행 번호는 지정되어 있습니다. 모든 행에서 작동하게 만드시겠습니까? 많은 감사합니다. – Hyperjase