2 つのスプレッドシートを含む Google ワークブックがあります。最初のスプレッドシートでは、列 B にさまざまな ID が追加されます。2 番目のワークシートの列 A に含まれる有効な ID のリストに、列 B の ID が含まれていることを確認したいと思います。
最初のワークシートの B 列の ID が無効な場合は、行全体を赤くします。
これは私の現在の作業コードですが、動作が遅いです.2番目のスプレッドシート(〜5400)に有効なIDがたくさんあるためだと思います。また、行が削除された場合、行の色を消したいです。
これを行うより良い方法はありますか:
function onEdit(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var r = s.getActiveCell();
var activeRange = s.getActiveRange();
var changeRange = s.getRange(activeRange.getRow(),1,1,s.getLastColumn());
if (r.getColumn() == 2 && r.getValue() == "") {
changeRange.setBackground("none");
}
if (r.getColumn() == 2 && findRow(r.getValue()) !=1) {
changeRange.setBackground("red");
}
}
function findRow(item) {;// the actual search function
var resultArray = []
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[1];
var values = sheet.getRange("A:A").getValues();
for(cc =0; cc < values.length; ++cc) {
if(values[cc].toString().match(item)){
return 1;
}
}
}