我正试图想出一个脚本,将这个公式("=iferror(filter(Directors!$ a $3:$ a $55,Directors!D$4:D$56=$A5),)")添加到一个空单元格(让我们考虑单元格的问题是"D6")
我试过下面的脚本,但它会添加公式,即使单元格不是空的。如果我已经在该单元格中写入了一些内容,它将覆盖它并添加公式,但我希望仅在单元格为空白时添加公式。
这是我尝试使用的脚本。
function Week1IFBlankFormulas() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange("D6").activate(); spreadsheet.getCurrentCell().setFormula('=iferror(filter(Directors!$A$3:$A$55,Directors!D$4:D$56=$A5),)'); spreadsheet.getActiveRange().autoFill(spreadsheet.getRange("D6"), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES); if('D6' > 0,""); };
不知道你们需不需要但这张表格的名字是&;Week 1 populated&;
非常感谢任何帮助。谢谢大家!
这个脚本应该为你工作:
function Week1IFBlankFormulas() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange("D6").activate();
if(spreadsheet.getCurrentCell().isBlank()) return;
spreadsheet.getCurrentCell().setFormula('=iferror(filter(Directors!$A$3:$A$55,Directors!D$4:D$56=$A5),)');
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange("D6"),SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
};
我刚刚自己测试了一下,它对我有效。您的if
语句位于脚本的末尾,并且语法错误,因此无法正确执行。
如果您对此有任何问题请告诉我
基于前面答案中的脚本,但经过测试后,单元格被填满了其中的文本。
我修改了if语句,只允许公式在单元格为空时出现:
function Week1IFBlankFormulas() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange("D6").activate();
if (spreadsheet.getCurrentCell().isBlank()) {
spreadsheet.getCurrentCell().setFormula('=iferror(filter(Directors!$A$3:$A$55,Directors!D$4:D$56=$A5),)');
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange("D6"), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
} else {
return;
}
};