【问题标题】:Name a sheet based on a cell in that sheet根据该工作表中的单元格命名工作表
【发布时间】:2019-03-19 12:24:46
【问题描述】:

我希望使用 google sheet API 制作 60 多个模板电子表格副本。我希望能够使用同一工作表中的单元格命名每个工作表。

function NewBracket() {
var spreadsheet = SpreadsheetApp.getActive();
var name = spreadsheet.getActiveRange().activate() ;
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Template'), true);
spreadsheet.duplicateActiveSheet();
spreadsheet.getRange('B1').activate();
name.copyTo(spreadsheet.getActiveRange(),SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getActiveSheet().setName(name);
};

当我运行它时,工作表已正确创建,单元格 B1 已正确命名,但新创建的工作表名为 Range,而不是输入到单元格 B1 中的名称。如何获取上述代码以将工作表命名为与 B1 单元格中显示的名称相同的名称?

【问题讨论】:

  • 换行成spreadsheet.getActiveSheet().setName(name.getValue());
  • 确保您也处理了工作簿中已经存在该名称的情况。 (并考虑重构宏记录器的输出——当你可以只使用一个变量来存储引用时,激活选择是没有意义的)

标签: google-apps-script google-sheets


【解决方案1】:

答案来自 cmets 中的用户 ra89fi,但它确实有效。我将spreadsheet.getActiveSheet().setName(name); 更改为spreadsheet.getActiveSheet().setName(name.getValue());,效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    相关资源
    最近更新 更多