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