2017-02-16 3 views
1

특정 사용자에 대해 Google 시트 형식을 조건부로 지정하고 싶습니다. 기본적으로 Teacher # 1의 편집 내용은 노란색으로 표시되고 Teacher # 2는 녹색으로 표시됩니다. 불행히도 스프레드 시트의 '조건부 서식 지정'도구에는이 옵션이 없습니다. 특정 셀을 보호하는 것은 편집자의 규칙 변경으로 인해 작동하지 않습니다. 편집자를보고 싶을 뿐이며 제한하지 않습니다. 또 다른 제안은 "Revision History"옵션을 사용해야한다는 것입니다. 그러나 이것은 여러 시트를 사용하여 몇 달 동안 특정 편집기의 변경 사항을 찾는 데는 실용적이지 않습니다 (여러 편집자가 액세스 할 수 있음).Google 스프레드 시트 : 특정 사용자의 수정 내용 강조 표시

내가 생각한 방향은 전자 메일 (모든 사용자가 로그인해야 함)을 가져온 OnEdit 트리거가있는 기능을 가진 다음 마지막 편집을 강조 표시하는 것이 었습니다.

Here is the URL for a public Google Sheet I duplicated. 거기에서 많은 주간 시트 중 하나를 볼 수 있습니다. 그런 다음 각 사용자 (교사)와 관련된 색상이있는 제어판이 있습니다.

시작하려면 another StackOverflow forum에서 스크립트를 복사했습니다.

function setActiveUser() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 

    // GET EMAIL ADDRESS OF ACTIVE USER 
    var email = Session.getActiveUser().getEmail(); 
    Logger.log(email); 

    //HIGHLIGHT LAST EDITED CELL BASED ON OF ACTIVE USER'S PREDETERMINED COLOR 
    sheet.getRange(here is where I need to locate last edited cell).setBackgroundColor("here is where I need to color it based on the "Control Panel" sheet colors"); 

잘하면 언젠가 구글은 조건부 서식의이 종류를 수 있지만, 그 동안은 라틴 아메리카에서 우리 학교 톤 도움이 될 것입니다.

고맙습니다.

function onEdit() { 

을 그리고 마지막 줄은 다음과 같이해야한다 :

답변

1

코드의 첫 번째 줄은해야한다 (편집)

//HIGHLIGHT LAST EDITED CELL BASED ON OF ACTIVE USER'S PREDETERMINED COLOR 
    var teacherName = ss.getRangeByName("TeacherName").getValues().map(function(array) { return array[0]; }); 
    var teacherColor = ss.getRangeByName("TeacherColor").getValues().map(function(array) { return array[0]; }); 
    var nameIdx = teacherName.indexOf(email); 
    if(nameIdx > -1) 
    sheet.getActiveCell().setBackground(teacherColor[nameIdx]); 

이 작업을하려면, 먼저 실행해야 코드를 스크립트 편집기에서 편집하고 권한을 부여하십시오. TeacherNameTeacherColor은 미리 명명 된 범위로 설정해야합니다. 시험지는 here입니다.

+0

Sangbok, 편집 후 테스트 시트가 강조 표시되지만 모든 사용자의 편집 내용이 노란색으로 표시되는 것이 좋습니다. 특정 사람들의 편집 내용을 특정 색상으로 표시하는 것이 나의 희망이었습니다. "제어판"탭에는 6 명의 선생님 목록이 있음을 알 수 있습니다. "선생 # 1"대신 선생님의 이메일을 보내야합니다. 내가 원하는 것은 누가 시트를 편집하고 있는지보고, 교사 # 2가 만든 경우 노란색으로 수정하는 것을 강조하는 vlookup 유형의 스크립트를 작성하는 것입니다 (하지만 이메일 주소는 "교사 # –

+0

@AaronSmith 코드를 수정했습니다. 테스트 시트를 통해 시험해보십시오. 시도해 보시기 바랍니다. –