我希望有人能帮我写一篇可以在Google表格上使用的Google脚本(除非可以使用标准公式字符串完成)。
我希望脚本在“ Sheet1”的指定列中搜索特定的“ text value”,如果找到“ text value”,则该“行”中的数据将在“第一个可用< [空行。然后,在将数据传输到“ Sheet2”之后,删除包含“ Sheet1”中数据的行。
**,“ Sheet2”的标题少于“ Sheet1”的标题。我只想要“ sheet1”中与“ sheet2”具有相同标题的数据这是一个示例工作簿。Data Transfer如果F列中的“文本”为“丢失”,则将数据从该行传输到“ sheet2”中,但仅与“ sheet2”中的标头相关的数据。我是Scripts和VBA的新手,希望有人愿意提供任何帮助。
非常感谢!
-杰西
查找,移动和删除
txt
是要搜索的文本col
是要搜索的列名
function findMoveDelete(txt,col) {
var txt=txt||'Hoover';//search text
var col=col||'Location';//column name
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var dsh=ss.getSheetByName('Sheet2');
var dHdrToIdx={dhA:[]};
dHdrToIdx.dhA=dsh.getRange(1,1,1,dsh.getLastColumn()).getValues()[0];
dHdrToIdx.dhA.forEach(function(hdr,i){dHdrToIdx[hdr]=i;});
var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
var sHdrToIdx={shA:[]};
sHdrToIdx.shA=sh.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
sHdrToIdx.shA.forEach(function(hdr,i){sHdrToIdx[hdr]=i;});
var vA=rg.getValues();
var d=0;
for(var i=0;i<vA.length;i++) {
if(vA[i][sHdrToIdx[col]]==txt) {
var row=[];
dHdrToIdx.dhA.forEach(function(dhdr,j){
row.push(vA[i][sHdrToIdx[dHdrToIdx.dhA[j]]]);
});
dsh.appendRow(row);
sh.deleteRow(i+2-d++);
}
}
}