Google apps script 将列范围的值传递给应用程序脚本中的变量

Google apps script 将列范围的值传递给应用程序脚本中的变量,google-apps-script,google-sheets,google-spreadsheet-api,Google Apps Script,Google Sheets,Google Spreadsheet Api,所以我有一个脚本,如果正则表达式匹配一个值('/exe'),它将删除行。我想将另一张表(比如Sheet1)中的整列(A2:A)值传递给regex变量,以便在Sheet2中比较和删除所有值。任何帮助都会得到报答 函数deleteRows(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=ss.getSheetByName(“Sheet2”); var rows=sheet.getDataRange(); var numRows=

所以我有一个脚本,如果正则表达式匹配一个值('/exe'),它将删除行。我想将另一张表(比如Sheet1)中的整列(A2:A)值传递给regex变量,以便在Sheet2中比较和删除所有值。任何帮助都会得到报答

函数deleteRows(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“Sheet2”);
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues();
var toDelete=[];
var re=new RegExp('/exe');
对于(var row=0;row
您可以用正则表达式的方式连接它们。 在“删除行”中,可以添加

var pattern = "(" + ss
    .getSheetByName("Sheet1")
    .getDataRange()
    .getValues()
    .map(function(row) {return row[0];})
    .filter(function(row, rowI) {return rowI > 0 && row !== "";})
    .join("|") + ")";
它从Sheet1中获取数据,提取第一列作为数组,删除标题和空行,并将它们与|连接起来,最后将其包装为parens


然后您可以
var re=new RegExp(pattern)

过滤器函数中的rowI是什么?row是当前元素,rowI是数组中的索引(就像您正在为(var rowI=0;…)执行
),另请参见
var pattern = "(" + ss
    .getSheetByName("Sheet1")
    .getDataRange()
    .getValues()
    .map(function(row) {return row[0];})
    .filter(function(row, rowI) {return rowI > 0 && row !== "";})
    .join("|") + ")";