Как создать условное форматирование на основе индивидуального пользователя с функцией (onEdit) в листах Google.(За каждое изменение) - PullRequest
0 голосов
/ 20 мая 2019

Я ищу сценарий или код, который мне нужно ввести в редакторе сценариев листов Google, в котором все будущие изменения, сделанные другими пользователями, будут отображаться другим цветом. (Аналогично тому, как работает история изменений)

У меня нет опыта кодирования, поэтому, если что-то неясно, обязательно спросите ...

Я сам нашел некоторую информацию и думаю, что должен использовать:

onEdit триггер и Session.getactiveuser().getemail()

1 Ответ

0 голосов
/ 20 мая 2019

Я не знаю, как выделить текст в ячейке и изменить его цвет программно. Я предполагаю, что это невозможно, хотя это можно сделать с помощью редактора. Но вот что у меня есть, и вы можете взять его и поработать с ним самостоятельно.

function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()!='Sheet1') return;
  if(e.oldValue && e.value) {
    var oldA=String(e.oldValue).split("");
    var newA=String(e.value).split("");
    sh.getRange('A2').setValue(oldA.join(','));
    sh.getRange('A3').setValue(newA.join(','));
    sh.getRange('A4').setValue(getChange(oldA,newA));                           
  }
  sh.getRange('A1').setValue('value: ' + e.value + ' oldValue: ' + e.oldValue)
}

function getChange(oldA,newA) {
  var oldA=oldA || 'This is the oldA'.split("");
  var newA=newA || 'This is the newA'.split("");
  var start=-1;
  var end=-1;
  for(var i=0;i<oldA.length;i++) {
    if(oldA[i]!=newA[i]) {
      start=i;
      break;
    }
  }
  oldA.reverse();
  newA.reverse();
  for(var i=0;i<oldA.length;i++) {
    if(oldA[i]!=newA[i]) {
      end=newA.length-i;
      break;
    }
  }
  newA.reverse();
  var rv=newA.slice(start,end).join('');
  return rv;
}

Я использовал A1: A4, чтобы получить информацию обратной связи от функции onEdit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...