Javascript 如何从Google Sheet应用程序脚本返回N/A?
这似乎是个微不足道的问题。但我已经花了一些时间,我仍然无法从互联网上找到任何线索。我一直在努力解决这个问题。他们都不好。返回null或undefined只会导致空白单元格。当然,返回N/A作为字符串是远远不够好的 例如,我们在Google应用程序脚本中有一个函数Javascript 如何从Google Sheet应用程序脚本返回N/A?,javascript,google-apps-script,google-sheets,google-sheets-formula,google-sheets-custom-function,Javascript,Google Apps Script,Google Sheets,Google Sheets Formula,Google Sheets Custom Function,这似乎是个微不足道的问题。但我已经花了一些时间,我仍然无法从互联网上找到任何线索。我一直在努力解决这个问题。他们都不好。返回null或undefined只会导致空白单元格。当然,返回N/A作为字符串是远远不够好的 例如,我们在Google应用程序脚本中有一个函数 function GIVE_ME_NA() { return NA(); // This won't work } 在A1和A2单元格中 A1 =GIVE_ME_NA() A2 =ISNA(A1) A1和A2中显示的
function GIVE_ME_NA() {
return NA(); // This won't work
}
在A1和A2单元格中
A1 =GIVE_ME_NA()
A2 =ISNA(A1)
A1和A2中显示的预期结果如下:
A B
1 #N/A TRUE
在sheet公式中,我们可以简单地使用=NA。但是在应用程序脚本中,我不能。如果您
return "=NA()"?
我不清楚你为什么要用气体溶液,因为你用它作为细胞内的函数
如果您正在编写一个普通脚本,那么可以使用如下内容
ss.getRange(1,1).setFormula('NA()');
如果你
return "=NA()"?
我不清楚你为什么要用气体溶液,因为你用它作为细胞内的函数
如果您正在编写一个普通脚本,那么可以使用如下内容
ss.getRange(1,1).setFormula('NA()');
实际上,我对此很感兴趣,因为我通常不会做太慢的内联函数 你必须用你想要的引号作为字符串的范围来调用它,但这是可行的
function getThing(aRange){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var data = sheet.getRange(aRange).getValues();
Logger.log(data);
var result = [];
for (var i=0; i<data.length;i++)
{
var row = [];
for (var j=0; j<data[0].length; j++)
{
if (data[i][j] == "")
{
row.push("=NA()");
continue;}
var value = data[i][j];
// DO OTHER LOGIC TO GET WHAT YOU WANT TO RETURN
row.push(value);
}//for loop
result.push(row);
}//for loop
return result;
}//*****************************************************************************
实际上,我对此很感兴趣,因为我通常不会做太慢的内联函数 你必须用你想要的引号作为字符串的范围来调用它,但这是可行的
function getThing(aRange){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var data = sheet.getRange(aRange).getValues();
Logger.log(data);
var result = [];
for (var i=0; i<data.length;i++)
{
var row = [];
for (var j=0; j<data[0].length; j++)
{
if (data[i][j] == "")
{
row.push("=NA()");
continue;}
var value = data[i][j];
// DO OTHER LOGIC TO GET WHAT YOU WANT TO RETURN
row.push(value);
}//for loop
result.push(row);
}//for loop
return result;
}//*****************************************************************************
此时不可能,因为自定义函数支持的返回值是string、number、boolean和Date 正如你已经注意到的,返回NA不起作用 自定义函数无法返回公式,用户返回“=NA”在Google Sheets中设置为文本值,直到用户手动编辑单元格值或将单元格置于编辑模式,然后按Enter键 相关的 参考文献
此时不可能,因为自定义函数支持的返回值是string、number、boolean和Date 正如你已经注意到的,返回NA不起作用 自定义函数无法返回公式,用户返回“=NA”在Google Sheets中设置为文本值,直到用户手动编辑单元格值或将单元格置于编辑模式,然后按Enter键 相关的 参考文献
对你是对的。使用setFormula'=NA'可以实现这一点。但在我的情况下,把它改成setFormula有点困难。我的函数取一个范围,一个单元格,一个数组,或一个二维数组,检查里面的值,然后返回一个相同项数的数组。例如,它需要A1:D4。检查值,有些为真,有些为假。然后返回一个4x4数组。如果E1=myFuncA1:D4,则填充E1:H4。如果D3和D4为空,我希望H3和H4得到数值N/A。是。你是对的。使用setFormula'=NA'可以实现这一点。但在我的情况下,把它改成setFormula有点困难。我的函数取一个范围,一个单元格,一个数组,或一个二维数组,检查里面的值,然后返回一个相同项数的数组。例如,它需要A1:D4。检查值,有些为真,有些为假。然后返回一个4x4数组。如果E1=myFuncA1:D4,则填充E1:H4。如果D3和D4是空的,我希望H3和H4得到数值N/A。对不起,这也不准确,我不确定为什么,我会在早上看。对不起,这也不准确,我不确定为什么,我会在早上看