如果var是数字,对于脚本

Mon*_*yDo 12 google-apps google-sheets google-apps-script

我需要运行一个包含逻辑的脚本:If isNumber,Then DoSomething.

我运行其他如果然后测试,如果为空,如果单元格包含"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);

}
Run Code Online (Sandbox Code Playgroud)

对于包含数字和文本的两个单元格,此代码检查单元格A1并在单元格B1中返回字符串"0.###############".如何识别哪些单元格是数字?

Ed *_*son 11

这将检查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");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • ISNUMBER()已经是Google表格中的内置公式.就像Excel一样.https://support.google.com/docs/answer/3093296?hl=en (3认同)

Rub*_*bén 6

Google Apps脚本可以使用大多数JavaScript方法和运算符.

检查对象是否为数字的一种替代方法是使用typeof.

以下代码将返回引用指定的单元格值的类型.

function typeofcellvalue(reference) {
  var ss = SpreadsheetApp.getActive();
  var rng = ss.getRange(reference);
  var value = rng.getValue();
  return typeof value;
}
Run Code Online (Sandbox Code Playgroud)

用作自定义函数的示例

=typeofcellvalue("A1")
Run Code Online (Sandbox Code Playgroud)

如果细胞 A1

  • 有一个数字,结果将是number.
  • 是空的,结果将是string.

  • 这个答案更好,因为它适用于不同的语言设置,即对于逗号在十进制和整数部分之间的国家/地区。对于日期,它将返回“对象”,对于图像(公式“ Image”),它将给出“字符串”,但我希望使用“对象”。超链接也是字符串。 (2认同)