【发布时间】:2019-09-02 01:02:42
【问题描述】:
我在一个电子表格中有两张工作表。两个原始工作表都包含公式。我需要将每张工作表的结果作为值复制到新工作表中。我编写了一个小例程来执行此操作,但出现错误,并且找不到原因。错误在var targetRange2 = targetSheet2.getRange("a1:h10");这一行中
我研究了 SO,并多次检查代码是否存在拼写错误、结构和编码错误。
function testCopyValuesAndFormat() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.insertSheet("newSheet1");
var sourceSheet1 = SpreadsheetApp.openById("10TzfBrSdQA_IPtLNvgpOHU-UaInTmM8xUpfBjYybDak").getSheetByName("first");
var sourceRange1 = sourceSheet1.getRange("a1:h10");
var targetSheet1 = SpreadsheetApp.openById("10TzfBrSdQA_IPtLNvgpOHU-UaInTmM8xUpfBjYybDak").getSheetByName("newSheet1");
var targetRange1 = targetSheet1.getRange("a1:h10");
targetRange1.setValues(sourceRange1.getValues());
sourceRange1.copyTo(targetRange1, {formatOnly:true});
ss.insertSheet("newSheet2");
var sourceSheet2 = SpreadsheetApp.openById("10TzfBrSdQA_IPtLNvgpOHU-UaInTmM8xUpfBjYybDak").getSheetByName("second");
var sourceRange2 = sourceSheet2.getRange("a1:h10");
var targetSheet2 = SpreadsheetApp.openById("10TzfBrSdQA_IPtLNvgpOHU-UaInTmM8xUpfBjYybDak").getSheetByName("newSheet2");
var targetRange2 = targetSheet2.getRange("a1:h10");
targetRange2.setValues(sourceRange2.getValues());
sourceRange2.copyTo(targetRange2, {formatOnly:true});
}
我希望我的电子表格中有 4 张工作表 - “first”、“second”、“newSheet1”和“newSheet2”。那没有发生。 2 个新工作表(“newSheet1”和“newSheet2”)均已正确创建,工作表内容从“first”正确传输到“newSheet 1”,但第二个工作表(“second”)的内容永远不会转移到“新表 2"。
我在 "var targetRange2 = targetSheet2.getRange("a1:h10");" 行收到一个错误,说 "TypeError: Cannot call method "getRange" of null. (line 20, file "Code ")。
【问题讨论】: