将一个范围从一个电子表格复制到另一个电子表格

use*_*517 5 google-sheets google-apps-script

我试图将数组的内容从一张工作表(其中数组是通过迭代并推送用户选择的列的选择项目来创建的)复制到不同电子表格中的另一张工作表。

我遇到了许多关于如何将一个范围从一个电子表格导入到另一个电子表格的问题和答案,但没有一个对我有用(所有问题和答案都返回错误“我们很抱歉,发生了服务器错误。请稍等一下”然后再试一次。”)我也尝试过“copyTo”,但没有成功。

这是我当前正在使用的代码。我哪里出错了??

function copyToTrix(featureList) {

  featureList = featureList.getValues();

  var tss = SpreadsheetApp.openById("0AtX9IYFZ..."); //define active trix as target 

var ts = tss.getSheetByName("US");          //define sheet in target trix

var newRange = ts.getRange("DA12:DA25");    //define target range

 newRange.setValues(featureList);  //set values in target range to items in featureList

Browser.msgBox('copied');
}
Run Code Online (Sandbox Code Playgroud)

use*_*517 -1

事实证明,GAS 在使用 setValues() 函数时遇到了问题。它无法获取完整范围,因此我最终不得不使用 setValue() 来代替。(设置值仅允许您一次在一个单元格中进行操作):

var tss = SpreadsheetApp.openById("0AtX9IYFZ9KkbdHg4TUdqYVppTTU5OENpb04tWTdNbHc");
var ts = tss.getSheetByName("US");
for (var i = 0; i < featureList.length; i++) {
var position = i + 12;
ts.setActiveCell("B" + position).setValue(featureList[i]);
Run Code Online (Sandbox Code Playgroud)