在工作表内创建“表单”或将数据永久传输到新选项卡上

时间:2015-10-22 06:37:13

标签: google-apps-script google-sheets

我想找到一种方法,例如我有sheet1和sheet2:

第1页是我写数据的地方,比如A1:E10。

在我输入完所有数据后,我可以按下或运行一个脚本,将其最终传输到表2上吗?

无论在我提交数据后Sheet1中发生了什么,它都必须能够留在那里。

我需要的另一个功能是Sheet1中的数据可以更长(A1:E15)或有时更少,但每次低于最后一次输入时都必须传输并停留在工作表2中。

我想避免使用Google表单,因为它非常基本,并且在所说的A1中:E15我有计算公式,因此我无法真正使用Google表单。

1 个答案:

答案 0 :(得分:0)

我们假设您的输入位于input!A1:E,输出位于output!A:E

在菜单栏中,选择“脚本编辑器”,然后键入以下脚本:

function writeData () {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var inSheet = ss.getSheetByName("input");
  var input = inSheet.getRange(1, 1, inSheet.getLastRow(), 5)
    .getValues;
  var outSheet = ss.getSheetByName("output");
  var outStartRow = outSheet.getLastRow() + 1;

  for (var i = 0; i < input.length; i++) {
    for (var j = 0; j < input[i].length; j++) {
      outSheet.getRange(outStartRow + i, j + 1)
        .setValue(input[i][j]);
    }
  }
}

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name: "Write data", functionName: "writeData"});
  ss.addMenu("Custom functions", menuEntries);
}

保存所有内容,刷新电子表格。如果要永久传输数据,只需转到菜单栏,选择客户功能菜单下的写入数据。