在“粘贴”后运行脚本功能

Run a script function after Paste

本文关键字:运行 脚本 功能 粘贴      更新时间:2023-09-26

我正在为停车场设计一个表,可以控制进出汽车的时间,以及支付多少钱。表格名称为"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"

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

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

点击这里阅读更多关于onpaste事件的信息