粘贴后运行脚本功能

时间:2016-10-20 16:53:08

标签: javascript

我正在为停车场设计一张桌子,可以控制进出车的时间,以及支付多少钱。 工作表的名称为“Ingreso”,单元格C2将手动插入提供给客户端的票号。 在该表上是一个按钮,当单击运行函数copyAndDelete时,它是以下脚本:

function copyAndDelete () {
  var ss = SpreadsheetApp.getActiveSpreadsheet ();
  var source = ss.getRange ("Ingreso!C2:C2");
  var destSheet = ss.getSheetByName("Prueba");
  // Determinar la ubicación de la primera fila vacía.
  var destRange = destSheet.getRange(destSheet.getLastRow()+1,1);
  source.copyTo (destRange, {contentsOnly: true});
  source.clear ();

}

function onEdit(event)
{
  var RegistEnt = 'Registro'; //Es la hoja que estamos cambiando dinámicamente
  var lcol = 1; //# Columna izquierda que se está evaluando
  var tcol = 2; //# Columna donde estampamos la hora fecha actual.
  //

  var s = SpreadsheetApp.getActiveSheet(); //Activa la hoja de calculo en la que se esta trabajando el Script
  var sname = s.getName();

 if (sname == RegistEnt)
  {
    var r = SpreadsheetApp.getActiveRange(); //Activa el rango donde se captura el texto
    var scol = r.getColumn(); 
    if (scol >= lcol && scol <= tcol)
    {
      s.getRange(r.getRow(), tcol).setValue(new Date()); //Dispara el registro en la columna donde va el resultado
    }
  }
}

我在同一个名为“Registro”的电子表格中有另一张表,其中将在第1列粘贴票号,在第2列中将生成插入票号的日期和时间。我编写了一个脚本,在编辑第1列时,它将日期和小时放在第2列中。这是脚本:

function onEdit(event)
{
  var RegistEnt = 'Registro'; //Es la hoja que estamos cambiando dinámicamente
  var lcol = 1; //# Columna izquierda que se está evaluando
  var tcol = 2; //# Columna donde estampamos la hora fecha actual.
  //

  var s = SpreadsheetApp.getActiveSheet(); //Activa la hoja de calculo en la que se esta trabajando el Script
  var sname = s.getName();

 if (sname == RegistEnt)
  {
    var r = SpreadsheetApp.getActiveRange(); //Activa el rango donde se captura el texto
    var scol = r.getColumn(); 
    if (scol >= lcol && scol <= tcol)
    {
      s.getRange(r.getRow(), tcol).setValue(new Date()); //Dispara el registro en la columna donde va el resultado
    }
  }
}

问题是它有onEdit函数,所以它没有插入日期和时间,因为我必须编辑工作表“Registro”的第1列中的单元格,但我希望它将日期和时间放在函数copyAndDelete将值粘贴到工作表“Registro”

1 个答案:

答案 0 :(得分:0)

您可以尝试onpaste事件来触发脚本:

var el = document.getElementById('sourceCol');
el.addEventListener('paste', onEdit);

详细了解onpaste事件here