gpt4 book ai didi

javascript - 清除不同表上的匹配单元格(无序列)

转载 作者:行者123 更新时间:2023-12-01 00:26:52 25 4
gpt4 key购买 nike

所以...我在比较不同表格内容时遇到问题。

我基本上需要清除单元格数据相同的内容,但表格是无序的,当我运行我的代码时,只有第一行被清除。

所以我对此进行了修改(因为它只清除了表格的第一行):

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, 8, rowCount, 1).getValues();
var targetValues = targetTable.getRange(2, 3, rowCount, 1).getValues();



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

对此:

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

但是现在当我运行它时,每个单元格都被清除了。

最佳答案

清除源第 3 列和目标第 8 列中匹配的源和目标范围

function clearSourceandDestinationValues(){
var ss=SpreadsheetApp.getActive();
var ssh=ss.getSheetByName("Encaminhamento");
var tsh=ss.getSheetByName("testeBD");
var srg=ssh.getRange(2,8,ssh.getLastRow()-1,1);
var trg=tsh.getRange(2,3,tsh.getLastRow()-1,1);
var svA=srg.getValues();
var sA=svA.map(function(r){return r[0]});//flatten
var tvA=trg.getValues();
var tA=tvA.map(function(r){return r[0]});//flatten
svA.forEach(function(r,i){if(tA.indexOf(r[0])!=-1) {ssh.getRange(i+2,1,1,ssh.getLastColumn()).clear();}});//clears source range
tvA.forEach(function(r,i){if(sA.indexOf(r[0])!=-1) {tsh.getRange(i+2,1,1,tsh.getLastColumn()).clear();}});//clears destination range
}

关于javascript - 清除不同表上的匹配单元格(无序列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58901489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com