Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Google apps script Google脚本将数据从一个工作表传输到另一个工作表_Google Apps Script_Data Transfer - Fatal编程技术网

Google apps script Google脚本将数据从一个工作表传输到另一个工作表

Google apps script Google脚本将数据从一个工作表传输到另一个工作表,google-apps-script,data-transfer,Google Apps Script,Data Transfer,我希望有人能帮我写一个谷歌脚本,用在谷歌表单上,除非它可以用标准的公式字符串完成 我希望脚本在Sheet1的指定列中搜索特定的文本值,如果找到文本值,则该行的数据将传输到第一个可用空行中的Sheet2。然后,将数据传输到图纸2后,删除包含图纸1中数据的行 *注意,表2的页眉比表1的页眉少。我只想从sheet1中获取与sheet2标题相同的数据 这是一个示例工作簿。如果F列中的文本丢失,则将该行的数据传输到sheet2中,但仅传输与sheet2中标题相关的数据 我不熟悉脚本和VBA,如果有人愿意提

我希望有人能帮我写一个谷歌脚本,用在谷歌表单上,除非它可以用标准的公式字符串完成

我希望脚本在Sheet1的指定列中搜索特定的文本值,如果找到文本值,则该行的数据将传输到第一个可用空行中的Sheet2。然后,将数据传输到图纸2后,删除包含图纸1中数据的行

*注意,表2的页眉比表1的页眉少。我只想从sheet1中获取与sheet2标题相同的数据 这是一个示例工作簿。如果F列中的文本丢失,则将该行的数据传输到sheet2中,但仅传输与sheet2中标题相关的数据

我不熟悉脚本和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++) {
    //Find
    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);//Move
      sh.deleteRow(i+2-d++);//Delete
    }
  }
}
运行后的第1页和第2页:


表1和表2中的标题必须相同。您可以按自己喜欢的顺序排列,但两张纸的顺序必须相同。

非常感谢Cooper!我运行了脚本,它几乎适合我。它会找到指定的txt并完美地删除整行!但是,它不会将该行移动到图纸2。你能告诉我吗?我刚刚用你的数据试过了,它对我很有效。你把列标题放在第2页的第一行了吗。他们需要像你的例子中一样在那里。不要以任何方式更改名称,因为代码也必须更改。事实上,更改名称是可以的,只要它们在sheet1和sheet2上是相同的。如果您没有得到任何信息,可能是因为他们找不到合适的列来放置它们,因为要么是名称不存在,要么是您更改了它们。Cooper,我不确定,但我一定是做错了什么。今天早上我又试了一次,结果我犯了几个错误,但现在它工作得很好。非常感谢你!!!