首页 > 解决方案 > 如何使用 Google 表格中的 (onEdit) 功能基于单个用户创建条件格式。(每次更改)

问题描述

我正在寻找我需要在 Google 表格脚本编辑器中输入的脚本或代码,这将使不同用户将来所做的任何编辑以不同的颜色显示。(类似于修订历史的工作方式)

我没有编码专业知识,所以如果有任何不清楚的地方一定要问...

我自己找到了一些信息,并认为我应该使用:

onEdit触发和Session.getactiveuser().getemail()

标签: google-apps-script

解决方案


我不知道如何在单元格中选择文本并以编程方式更改其颜色。我猜这是不可能的,即使它可以用编辑器完成。但这就是我到目前为止所拥有的,欢迎您自己使用它并运行它。

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 函数中获取反馈信息。


推荐阅读