Google 电子表格脚本:检查单元格是不是为空
Posted
技术标签:
【中文标题】Google 电子表格脚本:检查单元格是不是为空【英文标题】:Google Spreadheets Scripts: check if cell is emptyGoogle 电子表格脚本:检查单元格是否为空 【发布时间】:2017-05-30 14:49:20 【问题描述】:只有当单元格为空时,我才想在单元格中输入变量。但是,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);
【问题讨论】:
一行有 10 列,另一行有 9 列,所以这是两个不同的单元格。一个错字。否则它会按预期工作。 【参考方案1】:试试:
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);
【讨论】:
【参考方案2】:无需提取值来确定单元格是否为空。 Google 电子表格 API 已经有一个方法:Range - isBlank method
var cell = r.getCell(rws-1, 10);
if (cell.isBlank())
cell.setValue("foo");
【讨论】:
这个方法isBlank()
有否定吗?线cell.isNotBlank()
.
否,因此唯一可用的选项是使用 否定符号,例如:if ( !cell.isBlank() )
假设,在我的行范围内,前五行不是空白,但后三行是空白,那该怎么办? sh.getRange(2, 1, 8, 26).getValues(); ?如何检查空白?【参考方案3】:
如果您已经有单元格值,则使用 ===
或 !==
运算符以避免类型转换(其中 0 == ""
)。
用于减少非空单元格值的代码 sn-p
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);
【讨论】:
以上是关于Google 电子表格脚本:检查单元格是不是为空的主要内容,如果未能解决你的问题,请参考以下文章
Google 表格脚本 - 根据单元格作为今天的日期发送电子邮件
Google 电子表格在消耗 400000 个单元格之前停止存储数据