我需要运行一个包含逻辑的脚本:If isNumber,Then DoSomething。
我已经运行了其他此类 if then 测试,例如如果为空白,以及单元格是否包含“x”。这应该很简单,但我找不到解决方案。我尝试过 getNumberFormat、innum、isnumber 等
function ifIsNumber() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var substring1 = s.getRange("A1").getNumberFormat();
s.getRange("B1").setValue(substring1);
}
此代码检查单元格 A1 并在单元格 B1 中返回字符串“0.###############”,这两个单元格都包含数字和文本。如何识别哪些单元格是数字?
这将检查 A1 是否是数字:
function ifIsNumber() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var substring1 = s.getRange("A1").getValue();
if (!isNaN(parseFloat(substring1)) && isFinite(substring1)) {
s.getRange("B1").setValue("Is a number");
} else {
s.getRange("B1").setValue("Not a number");
}
}
Google Apps 脚本可以使用大多数 JavaScript 方法和运算符。
检查对象是否为数字的另一种方法是使用 typeof。
以下代码将返回引用指定的单元格值的类型。
/**
* @param {string} reference Cell reference as string.
* @example
* // If A1 is a number, returns number
* =typeofcellvalue("A1")
* @return The JavaScript type of the cell value, i.e., number, string, boolean or Date.
* @customfunction
*/
function typeofcellvalue(reference) {
var ss = SpreadsheetApp.getActive();
var rng = ss.getRange(reference);
var value = rng.getValue();
return typeof value;
}
作为自定义函数的使用示例
=typeofcellvalue("A1")
如果细胞
A1
number
。string
。如果您想要执行数字操作(如果值是数字或数字的字符串表示形式),您可以执行以下操作:
if (!isNaN(myVar)){//myVar is either a number or a string representing a number
myNumericVar = +myVar;//convert myVar to number if necessary
//do number stuff
} else {
//do non-numeric stuff
}
参见:
JavaScript 中检查字符串是否为有效数字的