Ce programme fonctionne parfaitement, sauf si vous obtenez une ligne de données. Il attrape toujours un ensemble vide. Quelqu'un voit-il ce qui me manque? Il devrait être simple de copier et coller une rangée idiote..getValues () ne fonctionne pas si les valeurs sont créées par la formule Google Apps Script
J'ai besoin de saisir les données de D: BA dans la ligne éditée. Ensuite, supprimez la formule qui a créé les données, puis collez les données enregistrées dans la ligne pour pouvoir les personnaliser.
function onEdit(e) {
if(e.range.columnStart != 1 ||
e.source.getActiveSheet().getName() != "Loads")
/*e.source.getActiveSheet().getName() != "Loads") ||
e.range.rowStart != 9 || e.range.columnStart != 1 ||
e.range.rowEnd != 53 ||
e.range.columnEnd != 1*/
){
return;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Loads");
var arr = [];
var r = e.range.getRow();
var cell1 = sheet.getRange(r,1);
var cell2 = sheet.getRange(r,2);
var lastColumn = sheet.getLastColumn();
var row = sheet.getRange(r,4,49,49);
var value = e.value;
var arr = [];
// get cell 2
var cell2value = cell2.getValue();
// delete cell
cell2.clear();
//paste formula
cell2.setFormula('=split(REGEXREPLACE(A'+r+',\",\",\", \"),\",\",true)');
// copy row r,3,1,40
//var row2 = sheet.getRange(r,4,1,10);
var rowValues = row.getValues();
//push row values to array
arr.push(rowValues);
// clear e.range
cell1.clear();
// delete cell
cell2.clear();
// paste cell
//cell2.setValue(cell2value);
// paste row
row.setValues(arr);
}
};
Première impression: Êtes-vous sûr qu'il fonctionne? Votre condition 'if()' n'a pas 'else', donc si elle est vraie, elle appelle' return' et ne vous donne rien, et il n'y a rien à exécuter si la condition est évaluée à false. –