用于将数据从一张纸传输到另一张纸的Google脚本

问题描述 投票:-1回答:1

我希望有人能帮我写一篇可以在Google表格上使用的Google脚本(除非可以使用标准公式字符串完成)。

我希望脚本在“ Sheet1”的指定列中搜索特定的“ text value”,如果找到“ text value”,则该“行”中的数据将在“第一个可用< [空行。然后,在将数据传输到“ Sheet2”之后,删除包含“ Sheet1”中数据的行。

**,“ Sheet2”的标题少于“ Sheet1”的标题。我只想要“ sheet1”中与“ sheet2”具有相同标题的数据这是一个示例工作簿。Data Transfer如果F列中的“文本”为“丢失”,则将数据从该行传输到“ sheet2”中,但仅与“ sheet2”中的标头相关的数据。

我是Scripts和VBA的新手,希望有人愿意提供任何帮助。

非常感谢!

-杰西

google-apps-script data-transfer
1个回答
0
投票

查找,移动和删除

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

© www.soinside.com 2019 - 2024. All rights reserved.