I want to run this script automatically whenever the value in cell A1 in sheet "NETRankingsRohdaten" changes. Thanks for help.
function NETsaveData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var reportSheet = ss.getSheetByName("NETRankingsRohdaten");
var recordsSheet = ss.getSheetByName("NETDatabase")
var NETsaveData = reportSheet.getRange("A2:F")
.getValues();
var lastRow = recordsSheet.getLastRow();
//copy data
recordsSheet.getRange(lastRow 1, 1, NETsaveData.length, 6)
.setValues(NETsaveData);
}
CodePudding user response:
I believe your goal is as follows.
- You want to run the script when the cell "A1" of "NETRankingsRohdaten" sheet is edited. In this case, how about using OnEdit trigger? When OnEdit trigger is used, your script becomes as follows.
Modified script:
function onEdit(e) {
var range = e.range;
var reportSheet = range.getSheet();
if (reportSheet.getSheetName() != "NETRankingsRohdaten" || range.rowStart != 1 || range.columnStart != 1) return;
var ss = e.source;
var recordsSheet = ss.getSheetByName("NETDatabase")
var NETsaveData = reportSheet.getRange("A2:F").getValues();
var lastRow = recordsSheet.getLastRow();
recordsSheet.getRange(lastRow 1, 1, NETsaveData.length, 6).setValues(NETsaveData);
}
- In this case, when the cell "A1" of "NETRankingsRohdaten" sheet is edited, the script is run. So, when you directly run this function, an error occurs. Please be careful about this.
Note:
If you want to use
NETsaveData(), you can also use the following script. In this case, yourNETsaveData()is not modified. But when the cell "A1" of "NETRankingsRohdaten" sheet is edited, the script is run.function onEdit(e) { var range = e.range; var reportSheet = range.getSheet(); if (reportSheet.getSheetName() != "NETRankingsRohdaten" || range.rowStart != 1 || range.columnStart != 1) return; NETsaveData(); }
