Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 根据google工作表上的文本在不同的电子表格中复制一行_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 根据google工作表上的文本在不同的电子表格中复制一行

Javascript 根据google工作表上的文本在不同的电子表格中复制一行,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我想要一个代码或公式,可以根据B列上的文本将一行复制到另一个电子表格,但我只想复制a、B、C和D列……例如,如果B列的名称是定子,我想将该行复制到电子表格定子,如果名称是交流发电机,我想将该行复制到交流发电机电子表格 我已经试过这个了: function yourfunction() { var ss=SpreadsheetApp.getActive(); var sh1=ss.getSheetByName("Stator"); var sh2=ss.getSheet

我想要一个代码或公式,可以根据B列上的文本将一行复制到另一个电子表格,但我只想复制a、B、C和D列……例如,如果B列的名称是定子,我想将该行复制到电子表格定子,如果名称是交流发电机,我想将该行复制到交流发电机电子表格

我已经试过这个了:

function yourfunction() {
  var ss=SpreadsheetApp.getActive();
var sh1=ss.getSheetByName("Stator");
  var sh2=ss.getSheetByName("Prototype Number");
  var rg1=sh1.getRange(1,2,sh1.getLastRow(),sh1.getLastColumn()-1);//starting at column2
  var data=rg1.getValues();
  for(var i=1;i<data.length;i++) {
    if(data[i][6]=="Estator") {
      sh1.getRange(i+1,2,1,sh1.getLastColumn()-1).copyTo(sh2.getRange(sh2.getLastRow()+1,1,1,sh1.getLastColumn()-1));
    }
  }
}
函数yourfunction(){
var ss=SpreadsheetApp.getActive();
var sh1=ss.getSheetByName(“定子”);
var sh2=ss.getSheetByName(“原型编号”);
var rg1=sh1.getRange(1,2,sh1.getLastRow(),sh1.getLastColumn()-1);//从column2开始
var data=rg1.getValues();
对于(变量i=1;i解释:
  • 假设您在主工作表
    main
    中的
    A、B、C、D列中有数据。您的目标是将行(
    A-D
    )复制到相应的工作表,其名称与
    B列中的值匹配

  • 您需要迭代所有工作表,并仅筛选列
    B
    与该工作表名称匹配的数据(行)。您可以使用来迭代工作表并基于工作表名称-列
    B
    进行筛选


解决方案: 请随意调整工作表的名称或范围,但请尊重脚本的逻辑,否则它将无法正常工作

function myFunction() {
  const ss = SpreadsheetApp.getActive();
  const main_sheet = 'Main';
  const msh = ss.getSheetByName(main_sheet);
  const sheets = ss.getSheets();
  const data = msh.getRange('A2:D'+msh.getLastRow()).getValues();
   
  sheets.forEach(sh=>{ 
    if(sh.getName()!=main_sheet){
      let temp_ar = data.filter(r=>r[1]==sh.getName());
    if (temp_ar.length>0){
      sh.getRange(sh.getLastRow()+1,1,temp_ar.length,temp_ar[0].length).setValues(temp_ar);                 
    }}});
}
我的示例文件的结构:


你的主表是什么?定子是什么?不,我的主表是一张包含定子和交流发电机数据的表是的,但是那张表的名称是什么?你似乎没有在任何地方使用它。如果你想复制a、B、C和D,为什么要从B列开始(从第2列开始)?