Macros
Events monitor data change event on a table
Excel.run(function (context) {
var table = context.workbook.tables.add("Sheet1!A1:C4", true).load("name");
return context.sync()
.then(function() {
Office.context.document.bindings.addFromNamedItemAsync(table.name, Office.BindingType.Table, { id: "myBinding" }, function (asyncResult)
{
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
console.log("Action failed with error: " + asyncResult.error.message)
} else {
// If succeeded, then add event handler to the table binding.
Office.select("bindings#myBinding").addHandlerAsync(Office.EventType.BindingDataChanged, onBindingDataChanged);
}
});
});
}).catch(function (error) {
console.log(error);
});
When data in the table is changed, this event will be triggered.
function onBindingDataChanged(eventArgs) {
Excel.run(function (context) {
var fill = context.workbook.bindings.getItem(eventArgs.binding.id).getTable().getDataBodyRange().format.fill.load("color");
return context.sync()
.then(function () {
if (fill.color == "#FFA500") {
return;
} else {
context.workbook.bindings.getItem(eventArgs.binding.id).getTable().getDataBodyRange().format.fill.color = "orange";
}
})
.then(context.sync);
}).catch(function (error) {
console.log(JSON.stringify(error));
});
}
© 2023 Better Solutions Limited. All Rights Reserved. © 2023 Better Solutions Limited TopPrevNext