我定义了两个函数,sPad 和 zPad,用于在 google 电子表格中使用,分别附加 +(作为 url 的空格)和前置零,直到结果字符串达到指定长度。当我第一次定义这些函数时,它们似乎工作正常,但后来我共享了电子表格,它现在任意拒绝加载结果。这是第二次发生这种情况。再次将电子表格设为私有(private)并没有解决问题。
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
编辑:结果是否实际加载似乎发生在抛硬币上。
最佳答案
我假设您不时收到不确定的“正在加载...”错误。似乎主要是在将开放式范围作为参数传递时观察到的,但在您的情况下,您传递的是两个单个值。
This is the best thread that I can find对于这个问题;您可能想给它加注星标,作为(某种)投票的一种方式,并且还会收到更新通知。
对公式或传递给公式的基础数据进行编辑似乎通常可以解决问题。另一种解决方法是不使用自定义函数,并使用 native 函数(这对于您的特定示例来说是可能的)或使用 Google Apps 脚本中的获取和设置(可能在 onEdit 触发器上运行)进行处理。显然,最好不必诉诸这些解决方法。
关于javascript - 自定义函数对于某些值莫名其妙地停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26020287/