2013-10-05 2 views
1

라인 스루를 기준으로 글꼴 색상을 변경하는 두 개의 스크립트가 있습니다. 모두 작동합니다. - 첫 번째 트리거는 맞춤 트리거 일 수 있습니다. - 둘째는 onEdit입니다.fontstylechanges에 대해 onEdit 트리거를 허용 할 수 있습니까? (라인 스루)

onEdit에는 환경 설정이 즉시 적용되지만 onEdit에는 셀의 값이 라인 스루 예 또는 아니오로 변경 될 때 변경 사항이 표시되지 않습니다.

fontstylechanges에 대한 onEdit 트리거를 허용 할 수 있습니까?

function colorlinethrough() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); // Get spreadsheet 
    var sheet = ss.getSheets()[0]; // Get first Sheet 
    var range = sheet.getDataRange(); // Get cells 
    var data = range.getValues(); // Get the cell values 

    for (var i in data) { 
    var editrange = sheet.getRange(parseInt(i)+1,2); 
     if (editrange.getFontLine() == "line-through") { 
      editrange.setFontColor("#CCCCCC"); 
     } 
     else { 
      editrange.setFontColor("#000000"); 
     } 
    } 
}; 

function onEdit(e) { 
    var ss = e.source; // Get spreadsheet 
    var range = ss.getActiveRange(); 
    if (range.getFontLine() == "line-through") { 
     range.setFontColor("#CCCCCC"); 
    } 
    else { 
     range.setFontColor("#000000"); 
    } 
}; 

또한 g + 커뮤니티 https://plus.google.com/104787958270362345970/posts/GTdBoTZR3YF

답변

4

스프레드 시트 여기에 트릭을 할 가능성이있는 onChange 이벤트가을에이 질문을했습니다. onEdit은 데이터가 변경되고 onChange 일 때 스프레드 시트 UI 자체가 변경됩니다. 한번 해봐.

https://developers.google.com/apps-script/understanding_events

+0

반드시 수행하십시오. 제안에 감사드립니다, 오늘 밤에 그것을 시도하고 다시보고 할 것입니다! – dimitrieh

+0

좋아요, onChange는 실제로 그 일을합니다! 그러나 그것은 colorlinethrough() 함수에서만 작동하고 onEdit (e) 함수로는 작동하지 않습니다 (이름으로 변경). OnEdit (e) 함수는 onChange가 변경된 셀 범위 만 보았을 때보다 효율적일 수 있다고 생각합니다. 변경시 범위 객체를 제공하지 않기 때문입니까? – dimitrieh

+0

Btw는 편집 및 트리거 생성을위한 GUI가 있음을 알기에 편리합니다. 그래서 처음에는 XD라는 함수 이름을 바꾸는 것을 망치고있었습니다! – dimitrieh

관련 문제