比较不同的表格并清除匹配的单元格

时间:2019-11-15 22:56:36

标签: javascript google-apps-script google-sheets spreadsheet

我正在尝试比较两个表的值并删除匹配单元格的

这就是我尝试过的方法,但是当我运行它时,什么也没发生

function clearSourceValues(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceTable = ss.getSheetByName("Encaminhamento");  
  var targetTable = ss.getSheetByName("testeBD");


  var rowCount = targetTable.getLastRow() + 1;


  var sourceValues = sourceTable.getRange(2, 6, rowCount, 1).getValues();
  var targetValues = targetTable.getRange(2, 1, rowCount, 1).getValues();



  for (var i in targetValues){

    var clearRange = targetTable.getRange(i + 1, 2, 1, 8);

    if (targetValues[i][0] == sourceValues[i][0]){
      clearRange.clear();
    };
  };  
};

1 个答案:

答案 0 :(得分:1)

  • targetValuessourceValues的“ A”列的值相同时,您想清除同一行从“ B”到“ L”的列。

如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。

修改点:

  • 在脚本中,使用for (var i in targetValues){。在这种情况下,i是字符串类型。这样,i + 1中的getRange(i + 1, 2, 1, 8)就变得像01, 11, 21, 31,,,
  • 在脚本中,从EncaminhamentotesteBD的工作表中检索值。根据您的情况,从第2行中检索值。在这种情况下,当i0(即数字)时,它是第一行。这是与搜索到的行不同的行。

当以上几点反映到您的脚本中时,它如下所示。

修改后的脚本:

在此修改中,您的脚本已修改。

从:
for (var i in targetValues){

  var clearRange = targetTable.getRange(i + 1, 2, 1, 8);

  if (targetValues[i][0] == sourceValues[i][0]){
    clearRange.clear();
  };
};
至:
for (var i = 0; i < targetValues.length; i++){ // Modified
  var clearRange = targetTable.getRange(i + 2, 2, 1, 8); // Modified
  if (targetValues[i][0] == sourceValues[i][0]){
    clearRange.clear();
  };
};

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。