JavaScript API for Excel中的触发器计算
我正在尝试使用 有人知道如何为单元格、区域、工作表或工作簿触发计算吗 例如,下面的代码选择了一个范围,但是我们如何重新计算这个范围呢JavaScript API for Excel中的触发器计算,excel,office-js,javascript-api-for-office,Excel,Office Js,Javascript Api For Office,我正在尝试使用 有人知道如何为单元格、区域、工作表或工作簿触发计算吗 例如,下面的代码选择了一个范围,但是我们如何重新计算这个范围呢 Excel.run(function (ctx) { var sheetName = "Sheet1"; var rangeAddress = "F5:F10"; var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress); range
Excel.run(function (ctx) {
var sheetName = "Sheet1";
var rangeAddress = "F5:F10";
var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
range.select();
return ctx.sync();
});
}).catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
您可以重新计算工作簿,这将完成您的场景。对于JS API,它位于应用程序级别:
Excel.run(函数(ctx){
ctx.workbook.application.calculate('Full');
返回ctx.sync();
}).catch(函数(错误){
日志(“错误:+错误”);
if(OfficeExtension.error的错误实例){
log(“调试信息:+JSON.stringify(error.debugInfo));
}
});
也就是说,除非您的工作簿处于手动计算模式,否则您不需要强制重新计算。所有相关单元格都应自动更新
有关API的更多信息,请点击此处:
希望这有帮助
~Michael Zlatkovsky,Office扩展团队的开发人员,MSFT在VBA中,我们可以,您确定JavaScript API不可能做到吗?这将是一个耻辱…Excel COM(VBA和.NET Interop)接口公开了应用程序级别(所有打开的工作簿)、单个工作表和范围(有或没有依赖项)的计算,并允许控制计算模式。JS API目前不允许控制计算,只允许在应用程序级别进行计算,即使JS API仅在单个工作簿级别工作。希望JSAPI在将来的某个时候能与所有其他EXCEL API更紧密地结合起来。这是应用程序级recalc与工作簿级访问的一个公平点。我会告诉团队,看看我们是否可以添加工作表级、工作簿级甚至范围级的recalc。谢谢Michael和Charles。。。我认为
公式
及其计算
是使Excel成为编程语言而不是数据库的重要组成部分。因此,它确实值得(在不同级别)使用……一件事是重新计算公式。另一个需要是能够将计算从手动切换到自动,就像VBA一样。如果我们从代码中粘贴和同步大量数据,同步操作将花费大量时间。我们应该能够做到:1。通过将calculationMode设置为“Manual”2关闭计算。然后从代码中粘贴数据。3.通过将calculationMode设置为“自动”打开计算。等待类似的东西。附言:同位语!此前的评论只有一半。删除它。按enter键并没有放入新行,而是提交了一个新行。这是一个新问题吗?