我正在尝试查找与字符串"Sub-Total"
完全匹配的所有单元格。当我运行以下代码时,代码在第二个context.sync()
之前中断。我在努力理解为什么在下面找不到和加粗这些单元格的原因。任何帮助将不胜感激!
在运行以下代码时,我希望A列中与"Sub-Total"
完全匹配的所有单元格都以粗体显示。
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var subTotals = sheet.findAll("Sub-Total", {
completeMatch: true,
matchCase: true
});
return context.sync().
then(function () {
subTotals.format.font.bold = true;
var aaColumn = sheet.getRange("A:A");
aaColumn.format.autofitColumns();
return context.sync();
})
}).catch(function (error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
代码将在第一个context.sync
处运行,然后在其后中断。
答案 0 :(得分:1)
您的代码对我有用,尽管您不必使用context.sync
。试试这个:
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var subTotals = sheet.findAll("Sub-Total", {
completeMatch: true,
matchCase: true
});
subTotals.format.font.bold = false;
var aaColumn = sheet.getRange("A:A");
aaColumn.format.autofitColumns();
return context.sync();
});
更新:
这里是a gist,您可以将其导入the Script Lab tool。让我们看看它在Script Lab中是否对您有用,然后从那里获取。
顺便说一句,我看不到您正在调用Excel.run
的上下文,但是它返回一个Promise对象,因此您应该尝试将return
关键字放在它的前面。有关示例,请参见要点。