Javascript 自动展开公式,然后复制粘贴值
我有一个函数,可以向某些标题行单元格添加自动展开公式 在下一行代码中,我获取Javascript 自动展开公式,然后复制粘贴值,javascript,google-apps-script,google-sheets,google-sheets-formula,Javascript,Google Apps Script,Google Sheets,Google Sheets Formula,我有一个函数,可以向某些标题行单元格添加自动展开公式 在下一行代码中,我获取显示值,然后将它们发布回工作表 我担心在自动展开公式完成展开之前,我将获得其范围内的值 这将r.getDisplayValues()在自动扩展完成之前获取值?从而获得具有空白数据的值,这些数据应该包含 我已经测试了各种场景,但这不是确定的 而且,我在搜索这篇文章时也没有找到任何东西 多谢各位 function setFormulasAE_n() { var ss =SpreadsheetApp.getActiv
显示值
,然后将它们发布回工作表
我担心在自动展开公式完成展开之前,我将获得其范围内的值
这将r.getDisplayValues()代码>在自动扩展完成之前获取值?从而获得具有空白数据的值,这些数据应该包含
我已经测试了各种场景,但这不是确定的
而且,我在搜索这篇文章时也没有找到任何东西
多谢各位
function setFormulasAE_n() {
var ss =SpreadsheetApp.getActive();
var sheet =ss.getSheetByName('Elements');
var LC = sheet.getLastColumn();
var LR = sheet.getLastRow();
//Auto-expanding Formulas to be added
//Two dim array with 1 row
var formulas = [[
"=ArrayFormula({\"ig_TagsHistorical\";iferror(vlookup(INDIRECT(\"Elements!A2:A\"&counta(Elements!$AJ$1:$AJ)), \'HelperElements_(ignore)\'!$A$2:$G, {5}, 0))})",
"=ArrayFormula({\"Additional Networks\";iferror(vlookup(INDIRECT(\"Elements!A2:A\"&counta(Elements!$AJ$1:$AJ)), \'Helper_(ignore)\'!$A$2:$D, {4}, 0))})",
]];
//Add auto-expanding formulas to Cell(s)
var cell = sheet.getRange(1,LC+1,1,formulas[0].length);
cell.setFormulas(formulas);
//Get range and post back Display Values
var r = sheet.getRange(1,LC+1,LR,formulas[0].length);
var v = r.getDisplayValues();
r.setValues(v)
}
脚本中使用的setFormulas()
函数是同步的,这本质上意味着指令后面的代码在函数完成执行之前不会执行
因此,r.getDisplayValues()
将始终在自动展开后获取值
要确保获得的值是预期值,可以在单元格.setFormulas(formulas)
代码行之后使用flush()
函数。flush()
所做的基本上是应用所有挂起的电子表格更改-更具体地说是您需要设置的公式
此外,您可以查看这些链接,因为它们可能对您有所帮助:
- )
脚本中使用的setFormulas()
函数是同步的,这本质上意味着指令后面的代码在函数完成执行之前不会执行
因此,r.getDisplayValues()
将始终在自动展开后获取值
要确保获得的值是预期值,可以在单元格.setFormulas(formulas)
代码行之后使用flush()
函数。flush()
所做的基本上是应用所有挂起的电子表格更改-更具体地说是您需要设置的公式
此外,您可以查看这些链接,因为它们可能对您有所帮助:
- )
有什么问题吗?这将r.getDisplayValues()代码>在自动扩展完成之前获取值?因此,使用空白数据获取应该包含数据的值。也许您应该在setFormulas()之后立即尝试SpreadsheetApp.flush()。谢谢,我将添加这一点。问题是什么?这是否r.getDisplayValues()代码>在自动扩展完成之前获取值?因此,可以使用空白数据获取应该包含数据的值。也许您应该在setFormulas()之后尝试SpreadsheetApp.flush()。谢谢,我将添加这一点