Answers:
有了这个小片段,您就可以做到。
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;
}
在这个答案中,汤姆·霍伍德(Tom Horwood)找到了一种规避引用用法的方法。
在“工具”>“脚本编辑器”下添加脚本,然后按bug按钮以激活身份验证。
我为您创建了一个示例文件:检查公式
isFormula(a1)
吗?(在MS Excel中,这将是一个获取范围参数的函数)
使用ISFORMULA()内置函数。
我想我只是在新的Google表格中发现了一个未记录的公式。@Pnuts表示该CELL
公式无效(部分是因为该公式仅在新的Google表格中可用),因此我将代码复制到了新的Google表格中。引发一个错误,告诉我我的(自定义)公式仅接受一个参数,而不接受两个参数:
将NAME重命名isFormula
为其他名称,导致自定义功能正常运行。在这种情况下,我创建了另一个Google表格并使用了isFormula
公式。该公式未出现在自动完成功能中,但是可以正常工作:
因此,如果该公式在新版Google表格中都可用,那么这将是最佳答案:
=isFormula(A1)
仅在新的Google表格中可用。我已经请其他几个人确认新公式并得到确认。由于没有记录,因此不确定其实现,并且可能会消失。在ARRAYFORMULA
这种新的配方使用时无法正常工作。
我为您创建了一个示例文件:isFormula
isFormula2("A1")
。所以我尝试创建一个这样的新版本:function isFormula2(cell) { return (cell.getFormula())!=""; }
我希望它可以使用调用,isFormula2(A1)
但这似乎无法正常工作,并且在尝试调试时显示cell
为undefined ...知道为什么会这样,如果可能的话改变了,所以它将f(A1)
代替f("A1")
?