2016-11-02 4 views
0

짧은 이야기 : 메모가 셀에 포함되어 있는지 여부에 따라 Google 스프레드 시트에 적용된 조건부 서식 색상을 재정의하거나 제거하는 데 도움이되는 스크립트 수정 도움말이 필요합니다. 그것.Google Apps 스크립트를 사용하여 Google 스프레드 시트에서 조건부 서식을 재정의 또는 제거하는 방법

전체 설명 : 콘텐츠 제작 작업을 추적하는 데 사용하는 this scheduling template이 있습니다. 편집자는 조건부 서식을 사용하여 가장 빠른 날짜가 시트에 표시되는 위치를 표시합니다. 또한 메모를 추가하여 셀을 완료로 표시하고 싶습니다 (셀에서 계획 완료 날짜와 메모의 실제 완료 날짜를 볼 수 있음). 그러면 셀이 회색으로 표시됩니다. 노트 세포를 회색 처리하면 포럼에서 함께 자갈길이 스크립트와 함께 작동 : 조건부 서식이 존재하는

function onOpen() { var sheet = SpreadsheetApp.getActiveSheet(), 
    data = sheet.getDataRange(), 
    notes = data.getNotes(), 
    bkgs = data.getBackgrounds(); for (var i = 0, len = notes.length; i < len; i++) { 
for (var j = 0, jlen = notes[0].length; j < jlen; j++) 
{ 
    if (notes[i][j]) 
    bkgs[i][j] = 'gray'; 
} } data.setBackgrounds(bkgs); } 

그러나, 세포를 회색으로하지 않습니다, 그래서 나는 그 문제를 해결하기 위해 더 많은 코드를 찾았다. 나는 sheet.clearFormats()를 추가하려고 시도했다. if 문 안에는 다음과 같이 표시됩니다.

{ 
    if (notes[i][j]) 
    bkgs[i][j] = 'gray'; 
    sheet.clearFormats(); 
} } data.setBackgrounds(bkgs); 

... 처음에는 효과가있는 것처럼 보였지만 시트가 완전히 마비되었습니다. 그런 다음 다음 몇 시간 동안 열어 보았습니다. 탭을 손상시키지 않고이 설정에서 조건부 서식을 재정의하거나 제거하는 방법에 대한 아이디어가 있습니까?

답변

0

setBackground는 범위 개체입니다. 배열과 함께 작동하지 않습니다,이 작품 :

function changeConditionalFormat() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet() 
    var s = ss.getActiveSheet() 
    var range= s.getRange(2,8,5,1) 
    range.clearFormat() 
    range.setBackground('grey'); 
} 
+0

아, 좋은 지적! 노트가 추가 된 셀에서만이 작업을 수행 할 수있는 방법이 있습니까? 나는 그것으로 땜질하고 있지만 내 코드에 오류가 계속 발생합니다. (죄송합니다. 저는이 초심자입니다.) – Marie