Office-js:如果选择了单个单元格,如何查找同一列中的最后一个单元格



>在使用Office.js的Excel 2016中,如果用户选择一个单元格,如何获取与用户选择的单元格在同一列中的最后一个单元格(其中包含数据(的地址?

 ________
|    A   |
----------
|        |
----------
|  Title |
----------
|   3    |    <----- user clicks here
----------
|   6    |  
----------
|   77   |    <----- how can I lookup this address?
----------
|        |
----------
|        |
----------

所以我可以让数组[ [3], [6], [77] ].

以下是我查找用户所选单元格地址的方法:

Excel.run(async (ctx) => {
    let range = ctx.workbook.getSelectedRange().getUsedRange();
    range.load("address");
    await ctx.sync();
});

在这种情况下,应返回以下地址:">Sheet1:A3">
我希望能够到达:">工作表1:A3:A5"。

你已经接近了;但你需要的是将包含所选内容的整个列的已使用范围从中获取:

    await Excel.run(async (context) => {
        let range = context.workbook.getSelectedRange();
        let usedRange = range.getEntireColumn().getUsedRange();
        usedRange.load("address");
        await context.sync();
        OfficeHelpers.UI.notify(usedRange.address);
    })

您可以在新的脚本实验室 (https://aka.ms/getscriptlab( 中单击五次即可实时试用此代码段。只需安装脚本实验室加载项(免费(,然后在导航菜单中选择"导入",并使用以下 GIST URL:https://gist.github.com/Zlatkovsky/1393689cc63c002165e06fa6fb4eb755。 请参阅有关将代码段导入脚本实验室的详细信息。

为了补充@MichaelZlatkovsky的答案,这可能也很有用:
https://github.com/OfficeDev/office-js-docs/blob/master/reference/excel/range.md#getlastcell

Docs - getLastCell((:

Gets the last cell within the range. For example, the last cell of "B2:D5" is "D5".

所以像这样:

var range = range.getEntireColumn().getUsedRange().getLastCell();

最新更新