将处理程序附加到 DocumentSelectionChanged 事件会禁用 Office 上的撤消堆栈 Mac
Attaching an handler to DocumentSelectionChanged event disables the Undo stack on Office for Mac
运行 Mac Office 上的 Office.js 似乎有一个错误。
如果您将事件处理程序附加到调用 Excel.run
的 DocumentSelectionChanged
事件,标准 Excel "undo" 功能将被禁用。并且在卸载加载项(即取消挂接事件处理程序)之前,它一直处于禁用状态。
您可以通过(例如)使用 Excel-Add-in-JS-CollegeCreditsTracker
示例应用程序并在 app.initialize
方法中插入以下代码块来重现此问题。
Office.context.document.addHandlerAsync(
Office.EventType.DocumentSelectionChanged,
function () {
Excel.run(function (ctx) {
var activeCell = ctx.workbook.getSelectedRange();
activeCell.load(["address", "worksheet", "rowIndex", "columnIndex", "values", "formulas"]);
return ctx.sync().then(function () {
app.showNotification(activeCell.address);
});
}).catch(function (err) {
console.log(err);
});
},
null,
function (asyncResult) {
console.log("Handler added: " + JSON.stringify(asyncResult));
}
);
请注意,这在 Excel 桌面和 Excel 在线上运行良好。
是否有特定原因(例如 Office 支持 Mac 的 API 版本会失败?
这个 answer 在一个不相关的问题上建议有一种替代方法来处理较新的 API 版本中的选择更改(尽管它没有说明如何)。在这种情况下,这是一个可能的解决方法吗?
我们不能使用 BindingChanged 事件,因为我们想知道用户何时移入和移出绑定、何时切换工作表等。
只是想让大家知道这个问题已经被 Office 团队解决了。
运行 Mac Office 上的 Office.js 似乎有一个错误。
如果您将事件处理程序附加到调用 Excel.run
的 DocumentSelectionChanged
事件,标准 Excel "undo" 功能将被禁用。并且在卸载加载项(即取消挂接事件处理程序)之前,它一直处于禁用状态。
您可以通过(例如)使用 Excel-Add-in-JS-CollegeCreditsTracker
示例应用程序并在 app.initialize
方法中插入以下代码块来重现此问题。
Office.context.document.addHandlerAsync(
Office.EventType.DocumentSelectionChanged,
function () {
Excel.run(function (ctx) {
var activeCell = ctx.workbook.getSelectedRange();
activeCell.load(["address", "worksheet", "rowIndex", "columnIndex", "values", "formulas"]);
return ctx.sync().then(function () {
app.showNotification(activeCell.address);
});
}).catch(function (err) {
console.log(err);
});
},
null,
function (asyncResult) {
console.log("Handler added: " + JSON.stringify(asyncResult));
}
);
请注意,这在 Excel 桌面和 Excel 在线上运行良好。 是否有特定原因(例如 Office 支持 Mac 的 API 版本会失败?
这个 answer 在一个不相关的问题上建议有一种替代方法来处理较新的 API 版本中的选择更改(尽管它没有说明如何)。在这种情况下,这是一个可能的解决方法吗?
我们不能使用 BindingChanged 事件,因为我们想知道用户何时移入和移出绑定、何时切换工作表等。
只是想让大家知道这个问题已经被 Office 团队解决了。