0

我是一个新手,正在编写一个脚本来根据主列中的文本输入来更改特定单元格的背景颜色。

例如,基本上在 B 行中存在多个国家代码“xx”、“xx”的情况下,我如何以更简单的方式突出显示与这些国家代码相关的相应行中的那些字段?目前,它在 a 行中包含单个语言环境但不包含多个语言环境的情况下起作用。

我有这个工作,但一次只有一个变量(示例文本是:AU)。

我需要这个让它适用于多个文本变量。(示例文本为:“AR、AU、BEfr”)

B 列:- 语言环境列
I 列:- AR 列
J 列:- AU 列
K 列:- BEfr 列
L 列:- BEnl 列
M 列:- BR 列
等....

我当前的代码如下。当然,我想这样做还有很长的路要走。我为区域设置列命名为“区域设置”,为所有复选框命名为“清单”。

非常感谢您的帮助。

function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('R186');
var values1Rule1 = s.getRange('Locales').getValues();
var range3Rule1 = s.getRange('AU');
var acro1 = 'AR', acro2 = 'AU', acro3 = 'BEfr', acro4 = 'BEnl', acro5 = 'BR';   
var color1 = '#ADD8E6';


for (var row in values1Rule1) {
for (var col in values1Rule1[row]) {

if (values1Rule1[row][col] == acro1) s.getRange(s.getRange('AR').offset(row, col, 1, 1).getA1Notation()).setBackgroundColor(color1);
else if (values1Rule1[row][col] == acro2) s.getRange(s.getRange('AU').offset(row, col, 1, 1).getA1Notation()).setBackgroundColor(color1);
else if (values1Rule1[row][col] == acro3) s.getRange(s.getRange('BEfr').offset(row, col, 1, 1).getA1Notation()).setBackgroundColor(color1);
else if (values1Rule1[row][col] == acro4) s.getRange(s.getRange('BEnl').offset(row, col, 1, 1).getA1Notation()).setBackgroundColor(color1);
else if (values1Rule1[row][col] == acro5) s.getRange(s.getRange('BR').offset(row, col, 1, 1).getA1Notation()).setBackgroundColor(color1);
else s.getRange(s.getRange('locales').offset(row, 0, 1, 58).getA1Notation()).setBackgroundColor('white').setFontColor('black'); }
}};
4

1 回答 1

0

这可能是在新的 Google 表格中解决的问题,带有格式、条件格式......,自定义公式是:

=$B1=I$1  

说应用于 Range I:M

SO20684892 示例

或者可能只是我误解了。

于 2014-10-06T22:44:42.427 回答