Google sheet script format changes before copy

时间:2017-08-04 12:52:52

标签: google-sheets

I have a script that will copy a line into another sheet when I enter a value in column 17 (the date when the file is closed).

I don't know why but before copying, the format changes and the date appears in numeric format

for example: 04/08/2017 => 42951

Any idea on what could be the problem?

Here is my script:

function onEdit(r) {

    var sheet = r.source.getActiveSheet();
    if(sheet.getName()!="Remboursements"){return}

    var ss = SpreadsheetApp.getActiveSpreadsheet();

    var source_sheet = ss.getSheetByName("Remboursements");
    var target_sheet = ss.getSheetByName("Remboursements traités");

    var range1 = r.range;
    var columnOfCellEdited = range1.getColumn();

    if (columnOfCellEdited === 17){

        var source_range = source_sheet.getRange("A"+ range1.getRow()+":Q"+ range1.getRow());

        var last_row = target_sheet.getLastRow();

        target_sheet.insertRowAfter(last_row);

        var target_range = target_sheet.getRange("A"+(last_row+1)+":Q"+(last_row+1));

        source_range.copyTo(target_range);
        source_sheet.deleteRow(range1.getRow())
    }
}

1 个答案:

答案 0 :(得分:0)

以下是另一种方法:

function onEdit(r) {
    if(r.source.getActiveSheet().getName()!="Remboursements"){return}
    var source_sheet=r.source.getSheetByName("Remboursements");
    var target_sheet=r.source.getSheetByName("Remboursements traités");
    if (r.range.getColumn()==17)
    {
      var source_range=source_sheet.getRange("A"+ r.range.getRow() +":Q"+ r.range.getRow());
      var values=source_range.getValues();
      target_sheet.appendRow(values);
      source_sheet.deleteRow(r.range.getRow())
    }
}