使用 Excel 加载项自动移动屏幕以查看选择

Automatically move the screen to view the selection with an Excel add-in

我想为工作簿中的一个范围创建一个函数 select 并在屏幕上显示该范围。我的测试表明 select() 确实 select 一个范围,但它并不总是自动适应屏幕以显示 selection。

例如,我尝试通过以下代码select并在Excel for Windows下显示Z10:Z10。但是selection之后,屏幕不动:

Office.initialize = function(reason) {
    $(document).ready(function() {
        app.initialize();
        $('#testSelect').click(function() { select("Z10:Z10", "Sheet1") });
    });
};

function select (rangeAddress, sheetName) {
    Excel.run(function (ctx) {
        var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
        range.select();
        return ctx.sync(); 
    });
}

有人能帮忙吗?

代码完成后回调中的一个选项是绑定到范围,然后 navigate 绑定到它:

Office.context.document.bindings.addFromSelectionAsync(Office.BindingType.Matrix, {id: "myBinding"}, function(asyncResult){
    Office.context.goToByIdAsync("myBinding", Office.GoToType.Binding, function(asyncResult){});
});

-Michael Saunders,Office 加载项项目经理

这似乎是 API 中的错误(或回归)。该团队目前正在调查此事。就解决方法而言,Michael Saunders 上面的建议可能是您最好的短期选择。

更新:这确实是 Excel 桌面客户端中的错误(或回归)。我们今天已经修复了它,因此对于 Office 365/Click-to-运行 用户,它应该在下一次更新时可用(即在几个月内)。

~ Michael Zlatkovsky,Office 可扩展性团队开发人员,MSFT