背景: 我有很多人编辑的工作表。我花了更多的时间去考虑用户验证它。 (如果您有好奇心,可以在这篇文章的底部列出一些尝试过的方法)。效果最好的解决方案是让我的用户“查看”单元格中是否包含公式。我有一个应用程序脚本,当与条件格式结合使用时,该脚本会突出显示该单元格,提醒他们不要在其上键入内容。不过,这还不能完全解决问题。 (尤其是当他们插入行时。)
问题: 我最近修改了这些工作表,用少量的数组公式代替了数千个公式。这已经解决了很多问题,但是现在,当我的用户在arrayformula列中输入单元格时,整个数据列都消失了,这让我的用户有些吃惊。我希望可以通过某种方式修改isFormula应用程序脚本,以突出显示该脚本适用于的单元格。我的想法是:弄清楚单元格中的公式是否为arrayformula。如果为true,则突出显示由公式填充的单元格。
我希望更改的脚本:isFormula():
/**
* Used to conditionally format cells having formulas
*
* @param {number,number} input The column number and
column row to start evaluating this formual and starting
* @return if getFormula() returns any value, false otherwise
* @customfunction
*/
function isFormula(startcol, startrow) {
// prepare string
var str = String.fromCharCode(64 + startcol) + startrow;
// retrieve formula
var fCell = SpreadsheetApp.getActiveSpreadsheet()
.getRange(str).getFormula();
// return false if empty else true
return fCell ? true : false;
}
条件格式设置规则:
=isformula(A1)
我尝试过的解决方法:
向助手大喊:
-s。