Я хотел бы добавить обработчик событий в диапазоны или ячейки, которые пользователь выбирает в книге: если пользователь выбирает другую ячейку или диапазон, необходимо предпринять некоторые действия.Добавить обработчик события в выбранный диапазон
Я смотрю 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) {
...
}
});
}
})();
Я ожидаю, что кнопка активирует слушателя. Затем каждый раз, когда пользователь выбирает другую ячейку или диапазон, сообщение систематически добавляется к панели задач. Однако приведенный выше код вызывает ошибку Error: TypeError: selectedRange.addHandlerAsync is not a function
на линии selectedRange.addHandlerAsync(...
.
На самом деле, я даже не уверен, что этот код должен быть структурирован так ... Кто-нибудь знает, как изменить код для выполнения моей задачи?