在F列中完成编辑后,G列中的时间戳记,复制H列并粘贴到另一张工作表中,并继续在F列中的每次编辑中追加

时间:2019-09-12 07:09:11

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

在Googlesheet的sheet1中,我有F列,其中包含需要经常更改的数据。当在F列的任何行中完成任何数据编辑时,都必须在相应行的G列中插入时间戳。然后,H列将这样生成的G列中的时间戳与F列中的内容连接起来。现在,刚创建的H列的数据必须粘贴到sheet2中并继续追加到sheet2中,以便在sheet2中为每个创建一个日志文件在F列中进行编辑。

function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "sheet1" ) {
  var r = s.getActiveCell();
  if( r.getColumn() == 6 ) {
  var nextCell = r.offset(0, 1);
  nextCell.setValue(new Date());
}}}

我不太了解编码。到目前为止,我已经设法在G列中创建了时间戳记,但是我无法做进一步的事情。

1 个答案:

答案 0 :(得分:0)

  1. 您需要从rnextCell中检索值,您可以使用getValue()
  2. 您可以通过简单地将值与+
  3. 相加来连接值
  4. 您可以使用getLastRow()来检索sheet2中的最后一行
  5. 您可以使用setValue(lastRow+1, COLUMNNUMBER);
  6. 将sheet1中H列的内容附加到H列中的第一行(或您选择的任何列)

根据您的代码,您可以进行以下修改:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "sheet1" ) {  //mind the case sensitivity!
    var r = s.getActiveCell();
    var col=r.getColumn();  
    if( col == 6 ) {
     var nextCell = r.offset(0, 1);
     var thirdCell = r.offset(0, 2);
     nextCell.setValue(new Date());
     thirdCell.setValue(nextCell.getValue()+" "+r.getValue());  
     var s2=SpreadsheetApp.getActive().getSheetByName("sheet2");
     var lastRow=s2.getLastRow();
     s2.getRange(lastRow+1, 8).setValue(thirdCell.getValue());
    }
  }
}