Je veux entrer une variable dans une cellule uniquement si la cellule est vide. La déclaration if, cependant, ne fonctionne pas. Aucun conseil?
var ss=SpreadsheetApp.getActiveSpreadsheet();
var r=ss.getRange("'odpovědi'!A2:J");
var rws=r.getNumRows();
ax=r.getCell(rws-1, 10).getValue();
if (ax == "") {
ax = "foo";
r.getCell(rws-1, 9).setValue(ax);
}
Pas besoin d'extraire la valeur pour déterminer si la cellule est vide. L'API Google Spreadsheet a déjà une méthode pour cela: Plage - Méthode isBlank
var cell = r.getCell(rws-1, 10);
if (cell.isBlank()) {
cell.setValue("foo");
}
Essayer:
function myFunction() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName('odpovědi')
var lr=s.getLastRow()
var ax=s.getRange(lr, 10).getValue();
if(ax == ""){
ax = "foo";
s.getRange(lr, 10).setValue(ax);
}
}
Si vous avez déjà une valeur de cellule, utilisez les opérateurs ===
ou !==
pour éviter la conversion de type (où 0 == ""
).
Extrait de code permettant de réduire les valeurs de cellules non vides
var sheet = ss.getSheets()[0];
var range = sheet.getRange("E2:H5");
var currentValues = range.getValues();
var newValues = [];
for (var row in currentValues) {
var newRow = [];
for (var col in currentValues[row]) {
if (currentValues[row][col] !== "") { // if not empty cell
newRow[col] = currentValues[row][col] - 1;
}
else {
newRow[col] = currentValues[row][col];
}
}
newValues[row] = newRow;
}
range.setValues(newValues);