【问题标题】:Issue with ss.insertSheet - inserted sheet has wrong namess.insertSheet 的问题 - 插入的工作表名称错误
【发布时间】:2015-11-02 13:11:58
【问题描述】:

您好,我编写了一个小脚本来复制电子表格中的一个模板工作表,作为同一个电子表格中的新工作表。

我写了两个版本,一个由一个菜单驱动,询问要创建的新工作表的名称:

function addonenewSheet() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var temp = ss.getSheetByName('template');
    var naame = Browser.inputBox("CustomerID to be created");
    try {
        ss.setActiveSheet(ss.getSheetByName(naame));
    } 
    catch (e) {
        ss.insertSheet(naame, {template:temp});
    }
}

这个按预期工作,如果我在输入框中这样说,它会命名新工作表 234。

第二个函数非常相似,但会解析一些值并尝试一次创建多个工作表:

function addmissingSheets() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var temp = ss.getSheetByName('template');
    var sheet = SpreadsheetApp.getActiveSheet();
    var data = sheet.getDataRange().getValues();
    for (var i = 10; i < data.length; i++) {
        if(typeof data[i][1] == 'number'){
            try {
                ss.setActiveSheet(ss.getSheetByName(data[i][1]));
            } 
            catch (e) {
                Logger.log('Customer ID: ' + data[i][1]);
                var insertpage = data[i][1];
                ss.insertSheet(insertpage, {template:temp});
            }
         }
     }
 }

就 Logger.log 而言,data[i][1] 具有正确的值,但 insertSheet 以某种方式创建名为“模板副本”、“模板 2 副本”的工作表...而不是取值在数据[i][1]中赋值

有谁知道为什么会出现这种行为以及如何解决这个问题?

【问题讨论】:

  • 您介意与代码共享工作表吗?
  • 工作表上的一些数据是敏感的,当我删除它时,函数不再有输入......但是,记录器的输出(因此 data[i] 的值[1]) 是 [15-11-02 15:04:17:475 CET] 客户 ID:59 [15-11-02 15:04:17:476 CET] 客户 ID:58 [15-11-02 15 :04:17:477 CET] 客户 ID:57 [15-11-02 15:04:17:478 CET] 客户 ID:223 ......因此这些值应该类似于我给出的 234输入框示例

标签: google-apps-script google-sheets


【解决方案1】:

您的第二个脚本没有使用正确的变量类型。您使用插页的方法使用类型(&lt;string&gt;, {template:&lt;sheet&gt;})。由于您的客户 ID 是一个数字,因此它不起作用。你可以做一个简单的修复

改变

var insertpage = data[i][1];

进入:

var insertpage = data[i][1].toString();

您现在可以使用客户 ID(数字)来创建工作表名称(字符串)

【讨论】:

  • 非常感谢@vytautas,这确实解决了我的问题!
猜你喜欢
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-05
  • 2018-07-29
  • 1970-01-01
  • 2021-12-30
相关资源
最近更新 更多