range.format.fill被认为是只读的,但应该是可读写的

当我尝试更改range.format.fill属性时,JavaScript引发一个错误,指出我无法在严格模式下更改只读属性值。 也许格式(或填充)对象是内部声明为只读属性,应该读/写? 当我尝试使用range.clear,我有成功,艰难,这就是为什么我认为错误是在格式或填充,但不在范围。

代码是:

(function () { "use strict"; // The initialize function must be run each time a new page is loaded Office.initialize = function (reason) { $(document).ready(function () { app.initialize(); $('#paint-range').click(paintRange); }); }; function paintRange() { Excel.run(function (ctx) { var range = ctx.workbook.names.getItem("Countries").getRange(); range.format.fill = "red"; return ctx.sync(); }).catch(function (error) { app.showNotification("Error", error); }) } })(); 

我得到的错误在:

 range.format.fill = "red"; 

你得到的错误实际上是正确的。 “填充”不是一个原始属性 – 它是一个API对象(又名“导航属性”)。 对于你正在做的事情,你需要指定你想修改的实际属性 – 在这种情况下, 颜色

 range.format.fill.color = "red" 

有关基元与API对象属性的说明,请参阅http://buildingofficeaddins.com/loading-properties/上的“标量与导航属性 – 及其对加载行为的影响”一节