セルが空の場合にのみ、セルに変数を入力します。ただし、ifステートメントは機能しません。何かアドバイス?
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);
}
セルが空かどうかを判断するために値を抽出する必要はありません。 Google Spreadsheet APIには既にこのためのメソッドがあります: Range-isBlank method
var cell = r.getCell(rws-1, 10);
if (cell.isBlank()) {
cell.setValue("foo");
}
試してください:
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);
}
}
既にセル値がある場合は、型変換を避けたい場合は===
または!==
演算子を使用します(0 == ""
)。
空でないセル値を減らすためのコードスニペット
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);