Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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
Javascript 比较不同的表格并清除匹配的单元格_Javascript_Google Apps Script_Google Sheets_Spreadsheet - Fatal编程技术网

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

Javascript 比较不同的表格并清除匹配的单元格,javascript,google-apps-script,google-sheets,spreadsheet,Javascript,Google Apps Script,Google Sheets,Spreadsheet,我正在尝试比较两个不同的表值,并删除匹配的单元格 这就是我尝试过的,但当我运行它时,什么都不会发生 function clearSourceValues(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sourceTable = ss.getSheetByName("Encaminhamento"); var targetTable = ss.getSheetByName("testeBD"); var row

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

这就是我尝试过的,但当我运行它时,什么都不会发生

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();
    };
  };  
};
  • targetValues
    sourceValues
    的列“A”的值相同时,您希望清除同一行中从“B”到“L”的列
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

修改点:
  • 在脚本中,使用了(
    for(targetValues中的var i){
    。在这种情况下,
    i
    是字符串类型。这样,
    getRange(i+1,2,1,8)
    中的
    i+1
    变得像
    01,11,21,31,
  • 在脚本中,从
    Encaminhamento
    testeBD
    的表单中检索值。在您的情况下,从第2行检索值。在这种情况下,当
    i
    0
    这是数字时,它是第1行。这是与搜索行不同的行
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 在此修改中,您的脚本将被修改

发件人: 致:
for(var i=0;i
参考资料:

如果我误解了你的问题,而这不是你想要的方向,我道歉。

Heelll是的!非常感谢你的解释,我感谢比修复错误更重要的是uderstang为什么会发生这种情况!它工作得很好。我整天都在试图修复它。@Luiz Godoy感谢你的回答。我很高兴你的问题是r解决了。现在我面临另一个问题,我只清除了第一行,而下面的行仍在继续。我认为这一定是因为表的顺序不同。我已经尝试在您制作的这个循环中放置另一个for循环,但我没有工作。您知道我应该怎么做吗@Tanaike@Luiz戈多比谢谢你的回复。我很想支持你。但不幸的是,关于你的新问题,我无法从你的回复中理解。我为我糟糕的英语技能道歉。那么你能通过包含详细信息将其作为新问题发布吗?这样,它将帮助包括我在内的用户思考问题和解决方案。如果你能合作的话来解决你的问题。我很高兴。
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();
  };
};