票据表脚本

时间:2015-07-22 16:32:44

标签: google-apps-script google-sheets google-form

我正在尝试创建一个电子表格来创建账单。我以前在Excel中做过这个,现在我想使用Google表格,但是我遇到了一些问题。

  • 我尝试创建一个每次人都点击特定范围时激活的功能
  • 我必须使用特定名称(例如A1 Row + A2 ROW的值)保存工作表并将其保存到我的Google云端硬盘帐户
  • 我使用importRange()导入Google表单的数据,但是如果我复制了表单,我必须允许显示数据。 (我怎么能这样做但未经许可?)

1 个答案:

答案 0 :(得分:0)

这些几乎都是一个问题。但是,以下是您的问题的答案:

1)我尝试创建一个必须在每次点击特定范围时激活的功能

使用onEdit函数执行您希望执行的任何功能。但是,必须更改值才能执行此功能。在GAS中没有onClick()功能(如前所述here)。但是,这是onEdit的一个简单示例:

function onEdit()
{
  var sheet = SpreadsheetApp.getActiveSheet();
  var cell = sheet.getActiveCell();
  var actRow = cell.getRow();
  var actCol = cell.getColumn();

//Assuming you want the range to be between rows 5-11 and column 2-9
  if (actRow >= 11 && actRow<=5 && actCol >=2 && actCol<=9)
  {
    //Implement your function
  }
}

2)我必须使用特定名称保存工作表(例如A1 Row + A2 ROW的值)并将其保存到我的google云端硬盘帐户

这是一个简单的样本。您将不得不根据您的使用情况对其进行修改,但这应该让您对如何操作有所了解:

function moveRows(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  var numRows = sheet.getLastRow();
  var sRange = sheet.getRange(2, 1, numRows, 1); //Leaving out header rows
  var data = sRange.getValues();

  var destFolder = DriveApp.getFolderById('*****');
  var newSpSheet = SpreadsheetApp.create("Billing Target");
  var newRows = "A"+(1+numRows);
  var newRange = "A2:"+newRows; //Leaving out header rows
  newSpSheet.getRange(newRange).setValues(data);

  //If you need the file to be in a specific folder
  DriveApp.getFileById(newSpSheet.getId()).makeCopy("Billing Target", destFolder);

}

3)我使用导入范围来导入google表单的数据但是如果制作表单y的副本必须提供permision来显示数据(我怎么能这样做但没有permision)< /强>

据我所知,未经许可,您无法做到。