Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 比较OneEdit的两列,如果匹配,则将新添加的颜色添加到颜色中_Excel_Google Apps Script_Google Sheets - Fatal编程技术网

Excel 比较OneEdit的两列,如果匹配,则将新添加的颜色添加到颜色中

Excel 比较OneEdit的两列,如果匹配,则将新添加的颜色添加到颜色中,excel,google-apps-script,google-sheets,Excel,Google Apps Script,Google Sheets,我试图通过扫描二维码并将其信息添加到一张表中,来验证某个活动的与会者。 在QRstuff.com上,可以生成QR扫描并将其导入在线Excel文件。 该工作表有一个名称列表,我希望将新添加的扫描OneEdit与工作表中已存在的列表(添加之后)进行比较,并以某种颜色绘制新名称 我试图更改在SO上找到的一些代码,但无法使其正常工作 var sh = SpreadsheetApp.getActiveSheet(); var lr = sh.getLastRow()// get the last ro

我试图通过扫描二维码并将其信息添加到一张表中,来验证某个活动的与会者。 在QRstuff.com上,可以生成QR扫描并将其导入在线Excel文件。 该工作表有一个名称列表,我希望将新添加的扫描OneEdit与工作表中已存在的列表(添加之后)进行比较,并以某种颜色绘制新名称

我试图更改在SO上找到的一些代码,但无法使其正常工作

 var sh = SpreadsheetApp.getActiveSheet();
 var lr = sh.getLastRow()// get the last row number with data
 var data = sh.getRange(1,1,lr,1).getValues(); // get only columns C.D,& E.  Starting at row 2 thur the last row
 //var data = sh.getDataRange().getValues();// read all data in the sheet
 for(n=0;n<data.length-1;++n){ // iterate row by row and examine data in column D
 //  if(data[n][0].toString().match('dsf')=='dsf'){
 if(data[8][1].match(/Pavel/i)){ //changed to find either upper or lower case dfs or with other text in string.
  data[n][2] = 'w';
  data[n][0] = '1.2'};
  }
  sh.getRange(1,1,data.length,data[3].length).setValues(data); // write back to the sheet only Col C,D,& E
 }


var sh=SpreadsheetApp.getActiveSheet();
var lr=sh.getLastRow()//获取包含数据的最后一行号
var data=sh.getRange(1,1,lr,1).getValues();//仅获取从第2行开始到最后一行的C.D和E列
//var data=sh.getDataRange().getValues();//读取工作表中的所有数据

对于(n=0;n以下是一些您可能需要解决的问题:

var data = sh.getRange(1,1,lr,1).getValues(); // get only columns C.D,& E.  Starting at row 2 thur the last row
这将获取A列中从第1行到最后一行的数据

注释说您希望C、D和E列中的数据从第2行一直到最后一行

var data = sh.getRange(2, 3, lr - 1, 3).getValues();
同样,当您将数据发布回工作表时

sh.getRange(1,1,data.length,data[3].length).setValues(data); // write back to the sheet only Col C,D,& E
这将把它发布到从A1到C列最后一行的范围内

要从第2行开始写入C、D和E列,请使用:

sh.getRange(2, 3, data.length, data[3].length).setValues(data);
在遍历数据时:

for(n=0;n<data.length-1;++n)
但我想指出的是,当您遍历所有数据行时,这将始终检查第9行(数据[8])

如果需要检查B列中该行的值,则需要将其更改为数据[n][1]

当然,如果只检查特定的行,可以在循环外检查一次并存储结果,而不是重复检查


希望这能有所帮助。

在您对这个
函数onEdit(){var sh=SpreadsheetApp.getActiveSheet();var lr=sh.getLastRow()//使用数据var data=sh.getRange(1,1,lr,1.getValues();//仅从列A获取列。对于(var n=0;n
现在我有另一个问题。我想将A列的内容与H列的现有内容进行比较。如果A中的数据存在于H中,A中的单元格能否着色为绿色?data[7][1]将为您提供单元格B8中的数据。这是因为数据[0]是第1行,因此数据[7][0]是单元格A8。因此,要比较A列和H列的内容,请使用if(data[n][0]==data[n][7]){}根据是否存在匹配设置单元格背景的颜色,请参阅
for (var n = 0; n < data.length; ++n)
if(data[8][1].match(/Pavel/i)