Ich möchte eine Variable nur dann in eine Zelle eingeben, wenn die Zelle leer ist. Die if-Anweisung funktioniert jedoch nicht. Irgendein Rat?
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);
}
Sie müssen den Wert nicht extrahieren, um festzustellen, ob die Zelle leer ist. Die Google-Tabellenkalkulations-API verfügt bereits über eine Methode: Range - isBlank-Methode
var cell = r.getCell(rws-1, 10);
if (cell.isBlank()) {
cell.setValue("foo");
}
Versuchen:
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);
}
}
Wenn Sie bereits einen Zellenwert haben, verwenden Sie die Operatoren ===
oder !==
, wenn Sie die Typkonvertierung vermeiden möchten (wobei 0 == ""
).
Code-Snippet zum Verringern nicht leerer Zellenwerte
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);