将Google文档中的范围复制到另一个工作表

时间:2012-07-13 01:14:55

标签: google-app-engine google-apps-script

我的Google表单已被少数用户填写。效果很好,但有其局限性。

我想将从活动工作表输入的数据复制到名为“work”的新工作表中,除了第一行之外的所有信息。在第一行中,我有一些数组公式,在活动工作表上输入新数据时填充一些单元格。

第二张表(work)有一个标题行,包含所有格式,数据验证,一些公式等(第1行)。当通过表格添加新记录时,无法应用此信息..所以我被告知..

因此,一旦从活动工作表复制数据(称为活动),我希望根据“工作”工作表的标题行(第1行)格式化新数据,并使用所有格式,验证,公式等应用于新数据。

这可行吗?在编写脚本时我是一个菜鸟,所以我们非常感谢完整的解决方案。

这是您可以使用的示例表单 https://docs.google.com/spreadsheet/ccc?key=0AplugTacg-08dFNRUHROSW82bDhESkxBdjVTV0NOLUE

首先我注意到一个人不能只是复制/粘贴,因为数组公式会让事情变得很糟糕所以它必须是一个特殊的粘贴 - 仅限值

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我正在努力解决你正在做的事情背后的逻辑,但我试图在this copy of your spreadsheet中的表'work2'中找到解决方案。也许有一个游戏并报告不正确或缺失的内容。

脚本是这样的:

function onFormSubmit(e) {
  var sheet = SpreadsheetApp.getActive().getSheetByName('work2');
  var nextRow = sheet.getRange(sheet.getLastRow() + 1, 1, 1, 9); 
  sheet.getRange(2, 1, 1, 9).copyTo(nextRow);
  var sLength = e.values[2].length;
  var huuh = e.values[3] * sLength;
  var pending = e.values[3] * e.values[3] / huuh;
  var nextMonth = e.values[3] + pending;
  nextRow.setValues([[e.values[0], e.values[1], huuh, e.values[2], sLength, e.values[3], 'Please select action', pending, nextMonth]]);
}

并附加了“on form submit”触发器。