我想使用Office Script每1秒重新计算一次Excel工作表。这是我失败的尝试。
function sendMessage(sheet: ExcelScript.Worksheet) {
console.log('hi');
sheet.calculate(true);
}
function main(workbook: ExcelScript.Workbook) {
let sheet = workbook.getActiveWorksheet();
setInterval(sendMessage, 1000, sheet);
}
控制台上没有打印任何内容,也没有重新计算。
3条答案
按热度按时间hgncfbus1#
我帮助开发了Office脚本运行时。
通常,Office Excel旨在执行一系列步骤并完成。例如,Office Server不是为在后台持续运行而设计的。
目前
setInterval
将无法工作,由于如何执行Office脚本,此外,只有一个Office脚本可以执行的时间。通常,我不建议持续运行Office脚本(运行时不支持它)。
也就是说
我曾经使用过忙碌waiting来创建一个延迟,你可以用它来暂停通话。参见下面的
sleep
函数:https://github.com/wandyezj/office-script/blob/main/functions/sleep.ts
kupeojn62#
我不熟悉
offise-js
,但根据一般原则,我可以猜出sheet
变量在计时器事件上没有正确的值。您需要全局定义它(如果可能的话)或在sendMessage
内部获取工作表。csbfibhn3#
我使用的是@wandyezj提供的
sleep
。这里是代码。