Home > Blockchain >  I need to copy variable range of data into a new empty row of another sheet. How do I need to change
I need to copy variable range of data into a new empty row of another sheet. How do I need to change

Time:03-31

function saveData(){

    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var formSheet = spreadsheet.getSheetByName("Receipt");
    var dataSheet = spreadsheet.getSheetByName("Historical Sales")
    var fieldRange = \["B12:X"\]
    
    var fieldValue = fieldRange.map(f =\> 
        formSheet.getRange(f).getValue())
    
    //console.log(fieldValue)
    dataSheet.appendRow(fieldValue)
};

function exp5() {

    var spreadsheet = SpreadsheetApp.getActive();
    spreadsheet.getRange('W12').activate();
    var currentCell = spreadsheet.getCurrentCell();

    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();

    currentCell.activateAsCurrentCell();
    currentCell = spreadsheet.getCurrentCell();

    spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.PREVIOUS).activate();

    currentCell.activateAsCurrentCell();

    spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Historical Receipts'), true);
    spreadsheet.getRange('X963').activate(); 
    spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).activate();
    spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.UP).activate();
    spreadsheet.getRange('A14:V23').activate();
    spreadsheet.getRange('Receipt!B12:W21').copyTo(spreadsheet.getActiveRange(), 
    SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};

CodePudding user response:

This is how I'd do it:

//Not tested, but it can give you a direction
function moveData () {
var formSheet = spreadsheet.getSheetByName("Receipt");
var formRng = formSheet.getRange(); //Specify the data range here
var formData = formRng.getValues();

var dataSheet = spreadsheet.getSheetByName("Historical Sales");

//It gets the first empty row in column A and "pastes" the data set (form Data) .
datasheet.getRange(datasheet.getLastRow() 1,1,formData.length,formData[0].length).setValues(formData);
}
  • Related