Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 更新列a中的单元格时创建新图纸_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 更新列a中的单元格时创建新图纸

Google apps script 更新列a中的单元格时创建新图纸,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在寻找帮助建立一个脚本。基本上我需要的是一个脚本,它可以: a) 更新列a中的单元格时,在工作簿中创建新工作表,但不创建重复的工作表 b) 复制并粘贴与更新列关联的范围 c) 根据A列中更新并最终更新的单元格重命名图纸 d) 将新图纸限制为200行 如蒙协助,将不胜感激 我知道下面的代码没有运行,我一直在尝试许多不同的方法来测试函数,并想给出一些我一直在努力的想法 function onEdit(e){ var range = e.range; if(range.getCol

我正在寻找帮助建立一个脚本。基本上我需要的是一个脚本,它可以:

a) 更新列a中的单元格时,在工作簿中创建新工作表,但不创建重复的工作表

b) 复制并粘贴与更新列关联的范围

c) 根据A列中更新并最终更新的单元格重命名图纸

d) 将新图纸限制为200行

如蒙协助,将不胜感激

我知道下面的代码没有运行,我一直在尝试许多不同的方法来测试函数,并想给出一些我一直在努力的想法

function onEdit(e){
    var range = e.range;
    if(range.getColumn() == 1){
        range.setNote("COLUMN: "+ range.getColumn());
    };
function insertSheet() {
  var spreadsheet = SpreadsheetApp.getActive();
      spreadsheet.insertSheet(58);
  spreadsheet.getActiveSheet().setName(spreadsheet.getRange('A214:A216'));
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('EOD Report Automation MASTER'), true);
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('A214:A216'), true);
  spreadsheet.getRange('\'EOD Report Automation MASTER\'!A214:J216').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
}
}
}

下面是一个使用onEdit()创建新工作表的简单示例。当你更清楚地解释你想要什么时,我很乐意修改它以满足你的要求

function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()=='Sheet5' && e.range.columnStart==1 && e.value) {
    var nA=e.source.getSheets().map(function(sh,i){return sh.getName();});
    if(nA.indexOf(e.value)==-1) {
      var nsh=e.source.insertSheet(e.value);
    }else{
      e.source.toast(Utilities.formatString("Attempt to create a duplicate Sheet: %s", e.value),"Duplicate Check",-1);
    }
    e.range.activate();
  }
}
在A列中输入图纸名称。除非输入重复的名称,否则将使用您输入的名称创建图纸

将数据从当前图纸复制到新图纸的版本:

function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()=='Sheet5' && e.range.columnStart==1 && e.value) {
    var nA=e.source.getSheets().map(function(sh,i){return sh.getName();});
    if(nA.indexOf(e.value)==-1) {
      var tsh=e.source.insertSheet(e.value);
      var svA=sh.getRange(e.range.rowStart,1,3,10).getValues();
      tsh.getRange(tsh.getLastRow()+1,1,svA.length,svA[0].length).setValues(svA);
    }else{
      e.source.toast(Utilities.formatString("Attempt to create a duplicate Sheet: %s", e.value),"Duplicate Check",-1);
    }
    e.range.activate();
  }
}


function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()=='Sheet5' && e.range.columnStart==1 && e.value) {
    var nA=e.source.getSheets().map(function(sh,i){return sh.getName();});
    if(nA.indexOf(e.value)==-1) {
      var tsh=e.source.insertSheet(e.value);
      var srg=sh.getRange(e.range.rowStart,1,3,10);
      var trg=tsh.getRange(tsh.getLastRow()+1,1);
      srg.copyTo(trg);
    }else{
      e.source.toast(Utilities.formatString("Attempt to create a duplicate Sheet: %s", e.value),"Duplicate Check",-1);
    }
    e.range.activate();
  }
}

谢谢你伸出援手。请分享您迄今为止所做的任何代码或工作好吗?这将帮助其他读者了解如何帮助你。否则,就不可能为您指明正确的方向。您的代码没有多大意义
.setName(电子表格.getRange('A214:A216')
setName()需要一个字符串,并且您给出了一个范围。阅读文档并更新脚本。这非常完美。谢谢你。最后,我需要弄清楚如何自动导入相对范围“\'Sheet5\”,而不是创建空白工作表的脚本!A2:J24'导入的相对范围在哪里?我们可以把一个公式放在新表格的某个地方,你希望它是什么?从正在更新的同一张表格,在本例中是第5页。该范围是上述代码中正在更新的列/行的扩展。例如,当前当表5上的A2输入“Test”时,将创建一个名为“Test”的新表。现在,我想将A2:J4从同一工作表5导入或复制并粘贴到新的“测试”工作表中,但要使脚本与正在更新的单元格相关,如上面的代码所示。是否要将它们复制到新工作表上的相同范围?它们应复制到新工作表的A1:J3。谢谢