Google Apps脚本copyTo()函数-它仅复制工作表而不复制内容

时间:2019-04-17 11:32:31

标签: google-apps-script google-sheets

我正在尝试将模板电子表格复制到新的电子表格。它确实可以从模板创建选项卡,但是所有选项卡都是空白/不受影响。

我获得了对模板/源和目标工作表的访问和编辑权限。

当我在Google脚本编辑器中运行调试时,将“ sourceSheet”作为对象,并使用getName()对其进行检查时,它显示了模板的名称,而“ source”则显示了模板中选项卡的名称

function onOpen(e){
    var installedStatus = PropertiesService.getScriptProperties().getProperty("installed");
    if(installedStatus != "true"){
        var ss = SpreadsheetApp.getActiveSpreadsheet();

        var documentName=ss.getName();
        if(ss.getName() == "Namnlöst kalkylark"){
            ss.rename("Dashboard 2.0 - (Kundens namn)");
        }

        var omKund = ss.getSheetByName("Om kund");
        if(omKund == null ){
            copySheets("Om kund");
        }
        PropertiesService.getScriptProperties().setProperty("installed", "true");
    }
}

function copySheets(tabname){

  var sourceSheet = SpreadsheetApp.openById("ID to template spreadsheet here");
  var source = sourceSheet.getSheetByName(tabname);
  var sValues = source.getDataRange().getValues();
  var destination = SpreadsheetApp.openById(SpreadsheetApp.getActive().getId());
  source.copyTo(destination);

  var destinationSheet = destination.getSheetByName("Copy of "+sourceName);  
destinationSheet.getRange(1,1,sValues.length,sValues[0].length).setValues(sValues);
  destinationSheet.setName(sourceName);
}'

1 个答案:

答案 0 :(得分:0)

您的变量'sourceName'在被调用之前未设置为任何值。