将范围从1个电子表格传输到另一个电子表格而不覆盖当前范围

时间:2015-10-06 18:09:33

标签: google-apps-script google-sheets

我有一个脚本,我似乎无法做得很好。

Spreadsheet1人填写,因为他们有一个" Hot Job",基本上这会为负责该工作的人创建一个纸质记录/透明度。

Spreadsheet2更多的是报告工具,有多少来自他们的理由和来自哪个客户。

Spreadsheet1将获得一个新标签' Sheet'每周,在每周结束时,我想将整个范围发送到spreadsheet2,而不会通过时间驱动的触发器写入已经在电子表格2上的任何信息。 IE getLastRow()然后在下面插入新数据。

这是我目前所处的位置,这将在某些时候完成我的要求。有时我会得到一个"该范围的坐标或尺寸无效"错误,我不知道为什么,因为有时候它有效。

function hotJob() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dropDown = ss.getSheetByName("Dropdown");
  var sheetName =dropDown.getRange("H2").getValue();
  var sheet = ss.getSheetByName(sheetName);
  var data = sheet.getRange("A2:O").getValues();
  var rowsInData = data[0].length;
  var colsInData = data[0].length;
  var mdURL = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Dj34hO55q_AYISk0TxpCyVl55rSoeOGpZ1dmuJli8IE/edit#gid=2081965371');
  var mdSheet = mdURL.getSheetByName("Hot Jobs");
  var mdLastRow = mdSheet.getLastRow(); 

  mdSheet.insertRows(rowsInData);
  mdSheet.getRange(mdLastRow, 1, rowsInData, colsInData).setValues(data);

}

非常感谢任何帮助。我已经搜索并尝试了我在这里找到的多个选项,但是无法使其中的任何一个适应我的情况。

谢谢, 泰勒

1 个答案:

答案 0 :(得分:0)

这里有两个相同的值

var rowsInData = data[0].length;
var colsInData = data[0].length;

第一个在长度之前不应该有[0]