google-apps-script - 如何使用 Google 表格中的 (onEdit) 功能基于单个用户创建条件格式。(每次更改)
问题描述
我正在寻找我需要在 Google 表格脚本编辑器中输入的脚本或代码,这将使不同用户将来所做的任何编辑以不同的颜色显示。(类似于修订历史的工作方式)
我没有编码专业知识,所以如果有任何不清楚的地方一定要问...
我自己找到了一些信息,并认为我应该使用:
onEdit
触发和Session.getactiveuser().getemail()
解决方案
我不知道如何在单元格中选择文本并以编程方式更改其颜色。我猜这是不可能的,即使它可以用编辑器完成。但这就是我到目前为止所拥有的,欢迎您自己使用它并运行它。
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 函数中获取反馈信息。
推荐阅读
- java - 从 servlet 内部调用 java 方法
- maven - maven 外部库 - jar 文件
- javascript - 在最大宽度的 div 中拉伸 div 以响应地视口全宽?
- callback - 如何在颤振小部件树内部调用 homepage.dart void 函数?
- file - 如何从 perl 脚本中的文件中删除所有换行符?
- pygame - 如何让我的排行榜出现在我的游戏中而不是在 python shell 上?
- python - 数据标签:Python
- node.js - 带有 Docker 的 Node Js 项目抛出没有这样的文件或目录 /var/www/package.json 的错误
- actionscript-3 - Actionscript - 带有外部文本文件的 TLFTextField,文件运行时不显示任何内容
- sql - 使用带有 SUM 和 GROUP BY 的完整 JOIN 避免重复条目