Google apps script Google应用程序脚本在公式中转换日期
我正在使用谷歌应用程序脚本在一张工作表中创建一组新的选项卡,除了公式中的一个日期之外,一切都进行得很顺利。我使用的代码是Google apps script Google应用程序脚本在公式中转换日期,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在使用谷歌应用程序脚本在一张工作表中创建一组新的选项卡,除了公式中的一个日期之外,一切都进行得很顺利。我使用的代码是 function MakeANewDaySheet() { var date = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy") var spreadsheet = SpreadsheetApp.getActive(); ... ... spreadsheet.getRange('O2').activat
function MakeANewDaySheet() {
var date = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy")
var spreadsheet = SpreadsheetApp.getActive();
...
...
spreadsheet.getRange('O2').activate();
spreadsheet.getCurrentCell().setFormula("=iferror(indirect(" + date + '!$B3),\"Please select a department\")')
}
我希望脚本放在单元格中的公式指向在此脚本期间创建的另一个工作表,它的名称就是今天的日期。当使用脚本输入公式时,它会显示“一年左右”,我似乎无法阻止它这样做
我想使用公式“=iferror(间接(02/06/2020!$B3),“请选择一个部门”)”
它给了我“=iferror(间接(2/6/'2020'!$B3),“请选择一个部门”)”
我试着在“和”之间切换,包括\和不,希望这很容易,但没有运气
有人能指出什么可能是(希望是)一个简单的语法错误。间接函数解析以字符串形式写入的单元格引用,但在这种情况下,公式中的日期不是以字符串形式写入的。请尝试此操作
spreadsheet.getCurrentCell().setFormula('=iferror(间接(“+date+”&“!$B3”),“请选择一个部门”)
这是使用indirect
引用另一张表(选项卡)的方式:
=INDIRECT("'"&"03/06/2020"&"'!"&"$B3")
要通过应用程序脚本设置此公式,每次公式中出现双引号时,必须使用转义字符(\“
)。所以你可以这样做:
var formula=“=IFERROR(间接(\“'\”&\“+date+“\”&\“!\”&“$B3\”),“请选择一个部门“);
电子表格.getCurrentCell().setFormula(公式);
注:
此外,如果要将此公式设置为O2
,则无需首先激活电池,您只需执行以下操作:
spreadsheet.getRange('O2').setFormula(公式);
参考:
=iferror(间接(“3/6/2020”和“!$B3”),“请选择一个部门”)
这很好,只是间接函数在显示文本时似乎无法将图纸值识别为图纸。我想我将尝试在函数的开头将日期强制转换为字符串,然后插入该字符串而不是日期。如果你在这段时间还有其他想法,请告诉我。如果没有,那是为了你的帮助@Alpesh JainHi Nicky,我已经在测试表上试过了,看起来效果不错。可能您应该检查使用脚本创建的工作表是否与公式中的名称完全相同