【问题标题】:GAS SpreadsheetApp copyTo Contentsonly errorGAS SpreadsheetApp copyTo Contentsonly 错误
【发布时间】:2014-10-22 16:28:41
【问题描述】:

我正在尝试运行以下代码行(取自https://developers.google.com/apps-script/reference/spreadsheet/range#copyTo(Range,Object)):

sheet.getRange("D1:D").copyTo(sheet.getRange("D1"), {contentsOnly:true});

我收到错误消息“很抱歉,出现服务器错误。请稍候,然后重试。”

如果我在没有 contentsOnly 位的情况下运行代码,它运行没有问题:

sheet.getRange("D1:D").copyTo(sheet.getRange("D1"));

我正在尝试复制 > 粘贴值,因为我想删除单元格中的公式。

我认为可能是我有一个电子表格而不是工作表(我使用的是 openById,而示例使用 getActiveSheet),但是当我添加 getSheetbyName() 来获取工作表时,我仍然遇到同样的错误。

【问题讨论】:

    标签: google-apps-script copy google-sheets runtime-error paste


    【解决方案1】:

    copyTo 是为了复制到 another 范围,我猜你得到的错误是正常的...

    你可以通过getValues()/setValues()得到你想要的结果

    var values = sheet.getRange("D1:D").getValues();
    sheet.getRange("D1:D").setValues(values);
    

    编辑:

    根据 Adam 的评论(谢谢),copyTo 方法似乎也应该适用于这种情况,如果它不适合您,请将我的建议作为一种解决方法(即使它可能只是一个临时问题)

    【讨论】:

    • 这个答案中的代码是有效的,但我不同意 copyTo 不起作用的原因,因为它被复制到同一个位置。我尝试了 OP 的代码,它可以工作。我会说这只是一个临时的服务器问题。
    • contentsOnly 副本似乎不可靠。它有时对我有用,有时不-不知道为什么。感谢这个解决方法,它拯救了我的一天。
    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2018-05-03
    • 1970-01-01
    • 2020-08-09
    相关资源
    最近更新 更多