Copy 谷歌应用程序脚本复制范围从一个电子表格到另一个电子表格,格式/公式

Copy 谷歌应用程序脚本复制范围从一个电子表格到另一个电子表格,格式/公式,copy,range,formats,Copy,Range,Formats,这段代码运行得很好,但我很难确定如何将格式以及公式与数据一起复制。我希望能得到任何帮助 var MyWBA = SpreadsheetApp.openById('1234567'); var MySHA = MyWBA.getSheetByName('Expense'); var SRange = MySHA.getDataRange(); var A1Range = SRange.getA1Notation(); var SData = SRange.getValues()

这段代码运行得很好,但我很难确定如何将格式以及公式与数据一起复制。我希望能得到任何帮助

  var MyWBA = SpreadsheetApp.openById('1234567');
  var MySHA = MyWBA.getSheetByName('Expense');
  var SRange = MySHA.getDataRange();
  var A1Range = SRange.getA1Notation();
  var SData = SRange.getValues();

  var MyWBB = 
  SpreadsheetApp.openById('122454');
  var MySHB = MyWBB.getSheetByName('Income');
  MySHB.getRange(A1Range).clearContent()
  MySHB.getRange(A1Range).setValues(SData);

这个样品怎么样?此示例从源电子表格复制每个单元格的值、公式和格式,并将它们粘贴到目标电子表格

var srcID = "### Source Spreadsheet ID ###";
var src_sheetName = "### Source sheet name ###";

var dstID = "### Destination Spreadsheet ID ###";
var dst_sheetName = "### Destination sheet name ###";

var src_ss = SpreadsheetApp.openById(srcID);
var src = src_ss.getSheetByName(src_sheetName);
var srcrange = src.getDataRange();
var srcrangeA1 = srcrange.getA1Notation();
var src_values = srcrange.getValues();
var src_formulas = srcrange.getFormulas();
var src_formats = srcrange.getNumberFormats();
for (var i=0; i<src_formulas.length; i++) {
  for (var j=0; j<src_formulas[i].length; j++) {
    if (src_formulas[i][j]) {
      src_values[i][j] = src_formulas[i][j];
    }
  }
}
var dst_ss = SpreadsheetApp.openById(dstID);
var dst = dst_ss.getSheetByName(dst_sheetName);
dst.getRange(srcrangeA1).setValues(src_values);
dst.getRange(srcrangeA1).setNumberFormats(src_formats);
var srcID=“####源电子表格ID###”;
var src_sheetName=“####源工作表名称###”;
var dstID=“####目标电子表格ID###”;
var dst_sheetName=“####目标工作表名称###”;
var src_ss=SpreadsheetApp.openById(srcID);
var src=src_ss.getSheetByName(src_sheetName);
var srcrange=src.getDataRange();
var srcrangeA1=srcrange.geta1表示法();
var src_values=srcrange.getValues();
var src_formulas=srcrange.getFormulas();
var src_formats=srcrange.getNumberFormats();

对于(var i=0;谢谢你,Tanaike。在我发布之前的研究中,我了解到copyTo方法仅适用于范围在同一个电子表格中的情况,而不是两个不同的电子表格。当我使用copyTo运行代码时,我收到错误“目标范围和源范围必须在同一个电子表格中。”@很抱歉,塔西佗。我误解了你的问题。我刚刚更新了我的答案。请确认。谢谢你,塔奈克。在我继续之前,我可以问一下,电子表格的所有用户都需要启用Google Sheet API v4吗?我担心会有几十人访问此电子表格,我不希望他们必须是c关于这个过程…@Tacitus我能问一下你使用这个脚本的情况吗?我无法从你的问题中理解。我很抱歉我的英语水平很差。Tanaike-如果我可以评论的话,我注意到你的英语中完全没有技能的缺失-你的写作是连贯和清晰的:)我有两个电子表格,一个用作仪表板。另一个电子表格每周更新新数据。我希望用户能够单击目标工作表中的按钮,并从源电子表格复制新数据。我已经研究了几个小时的脚本,我可以理解-但我没有找到一个代码。