如果 var 是数字,对于脚本

If var isnumber, for script

我需要 运行 包含以下逻辑的脚本: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 和 returns 单元格 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.

以下代码将return引用指定单元格值的类型。

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
}

参见:

(Built-in) way in JavaScript to check if a string is a valid number