【问题标题】:Compare different tables and clear matching cells比较不同的表格并清除匹配的单元格
【发布时间】:2019-11-15 22:56:36
【问题描述】:

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

这是我尝试过的,但是当我运行它时,什么都没有发生

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();
    };
  };  
};

【问题讨论】:

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


    【解决方案1】:
    • targetValuessourceValues 的“A”列的值相同时,您想清除同一行的“B”到“L”列。

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

    修改点:

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

    当以上几点反映到你的脚本中时,它变成如下。

    修改脚本:

    在这个修改中,你的脚本被修改了。

    从:
    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();
      };
    };
    

    参考资料:

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

    【讨论】:

    • 嘿嘿!非常感谢您的解释,我感谢比修复错误更重要的是了解它发生的原因!它工作得很好。我整天都在努力解决这个问题。
    • @Luiz Godoy 感谢您的回复。很高兴您的问题得到解决。
    • 现在我面临另一个问题,我只清除第一行,而以下行继续存在。我认为它一定会发生,因为表格不遵循相同的顺序。我已经尝试在你制作的这个循环中放置另一个 for 循环,但我没有工作。你知道我该怎么做吗? @田池
    • @Luiz Godoy 感谢您的回复。我愿意支持你。但很遗憾,关于你的新问题,我从你的回复中无法理解。我为我糟糕的英语水平道歉。那么您可以通过包含详细信息将其作为新问题发布吗?这样,它将帮助包括我在内的用户思考问题和解决方案。如果您能合作解决您的问题。我很高兴。
    猜你喜欢
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2016-02-12
    相关资源
    最近更新 更多