自定义函数莫名其妙地停止为某些值工作

时间:2014-09-24 15:02:32

标签: javascript google-sheets

我已经定义了两个函数,sPad和zPad,用于谷歌电子表格,分别附加+(作为url的空格)和前置零,直到结果字符串是指定的长度。当我第一次定义函数时,它们似乎工作正常,但随后我分享了电子表格,它现在任意拒绝加载结果。这是第二次发生这种情况。再次将电子表格设为私有无法解决问题。

function sPad(string, length) {
  string = string.toString();
  if (string.length >= length) {
      return string;
  } else {
      return string + Array(length - string.length + 1).join("+");
  }
};

function zPad(number, length) {
  number = number.toString();
  if (number.length >= length) {
      return number;
  } else {
      return Array(length - number.length + 1).join("0") + number;
  }
};

https://docs.google.com/spreadsheets/d/1DQPBCOdIaU7tZz6ukb2upxqmJU9P8ag6jFU50oNftpU/edit?usp=sharing

编辑:结果是否实际加载似乎是在硬币翻转上发生的。

1 个答案:

答案 0 :(得分:1)

我假设您不时会收到无限期的“正在加载...”错误。似乎主要是在开放式范围作为参数传递时观察到,但在您的情况下,您传递的是两个单值。

This is the best thread that I can find这个问题;你可能想把它作为一种(某种)投票方式,并且还会得到更新的通知。

对公式或传递给它的基础数据进行编辑似乎通常可以解决问题。另一种解决方法是不使用自定义函数,使用本机函数(可以使用您的特定示例)或使用Google Apps脚本中的获取和集合进行处理,也可以使用onEdit触发器运行。显然,不必采用这些解决方法是理想的。