Google Spreadheets Scripts:检查单元格是否为空

oro*_*nec 14 spreadsheet cell google-sheets google-apps-script

我想只在单元格为空时才在单元格中输入变量.但是,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);
}
Run Code Online (Sandbox Code Playgroud)

A. *_*son 15

无需替换值来确定单元格是否为空.Google Spreadsheet API已经有了一个方法:Range - isBlank方法

var cell = r.getCell(rws-1, 10);

if (cell.isBlank()) {
    cell.setValue("foo");
}
Run Code Online (Sandbox Code Playgroud)

  • 这个方法“isBlank()”有否定吗?行“cell.isNotBlank()”。 (2认同)

Ed *_*son 7

尝试:

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);
  }
  }
Run Code Online (Sandbox Code Playgroud)


kox*_*oxt 5

如果您已经有单元格值,那么如果您想避免类型转换( where ),请使用===或!==运算符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);
Run Code Online (Sandbox Code Playgroud)