这是我第一次使用Google脚本。我想在行包含特定值时更改行和文本的背景颜色。我使用这段代码取得了一些成功:
function onEdit()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var rows = sheet.getRange('a1:z');
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var i = 0; i <= numRows - 1; i++)
{
var n = i+1;
var backgroundColor;
var textColor;
if(values[i].indexOf('Won'))
{
backgroundColor = 'red';
textColor = 'blue';
}
else if(values[i].indexOf('Lost'))
{
backgroundColor = 'green';
textColor = 'yellow';
}
sheet.getRange('a'+n+':z'+n).setBackgroundColor(backgroundColor);
sheet.getRange('a'+n+':z'+n).setFontColor(textColor);
}
}
所以现在包含赢了的行变为带黄色文本的绿色,包含丢失的行变成带蓝色文字的红色。
有几个问题:
答案 0 :(得分:4)
我尝试了这个并且它对我有用,但是对于想要通过conditional formatting进行尝试的人来说,redpandasuit(在下面的评论中)的精湛回答。 以下是代码版本(Google脚本):
function onEdit()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('ZB Squash 2015');
var rows = sheet.getRange('a1:z');
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var i = 0; i <= numRows - 1; i++)
{
var n = i+1;
var backgroundColor;
var textColor;
if(values[i].indexOf('Won') == -1)
{
backgroundColor = 'red';
textColor = 'yellow';
}
if(values[i].indexOf('Lost') == -1)
{
backgroundColor = 'green';
textColor = 'yellow';
}
if(values[i].indexOf('Won') && values[i].indexOf('Lost'))
{
backgroundColor = 'white';
}
sheet.getRange('a'+n+':z'+n).setBackgroundColor(backgroundColor);
sheet.getRange('a'+n+':z'+n).setFontColor(textColor);
}
}
用户赢得的行现在变为绿色,用户丢失的行变为红色,其他行保持白色。
答案 1 :(得分:3)
我会尝试使用条件格式来解决此问题。为此,请突出显示所需的行,右键单击它们并选择“条件格式”。
在下拉框中选择自定义公式,然后尝试
= REGEXMATCH($ A1,&#34;(ⅰ)韩元&#34)
在此公式中,A1表示您将输入文本的列。根据需要进行更改。
然后,您可以从公式框旁边的选项中选择文本和背景颜色,并选择您的范围,以便为彩色内容添加约束。
然后重复该过程并为&#34; Lost&#34;
添加第二个自定义公式= REGEXMATCH($ A1,&#34;(ⅰ)丢失&#34)
这些公式可以进一步定制,以具有多个触发词,区分大小写等等。请查看此链接以获取相关提示:https://support.google.com/a/answer/1371417?hl=en
我希望这会有所帮助:)