【发布时间】:2016-05-18 02:56:55
【问题描述】:
我想为用户在工作簿中选择的范围或单元格添加事件处理程序:如果用户选择另一个单元格或范围,则需要系统地执行一些操作。
我正在查看this reference,但我不知道在哪里将代码集成到整个加载项中。
例如,在我的Home.html 中,我有
<div id="content-main">
<div class = "padding" id="message"></div>
<div class="padding">
<button class="ms-Button" id="button">Click me!</button>
</div>
</div>
这里是Home.js:
(function() {
"use strict";
Office.initialize = function(reason) {
$(document).ready(function() {
app.initialize();
$('#button').click(activateEventHandler);
});
};
function onBindingSelectionChanged(eventArgs) {
write(eventArgs.binding.id + " has been selected.");
}
function write(message) {
document.getElementById('message').innerText += message;
}
function activateEventHandler() {
Excel.run(function(ctx) {
var selectedRange = ctx.workbook.getSelectedRange();
selectedRange.addHandlerAsync(Office.EventType.BindingSelectionChanged, onBindingSelectionChanged);
return ctx.sync()
}).then(function() {
console.log("done");
}).catch(function(error) {
...
}
});
}
})();
我希望按钮激活监听器。然后,每次用户选择另一个单元格或范围时,都会系统地将一条消息附加到任务窗格中。但是,上面的代码引发了一个错误:
错误:TypeError:selectedRange.addHandlerAsync 不是函数
在线selectedRange.addHandlerAsync(...。
实际上,我什至不确定这段代码应该是这样的结构......有谁知道如何修改代码来完成我的任务?
【问题讨论】:
标签: javascript jquery office-js jquery-events