Excel加载项JavaScript - 获取上次选择的单元格

时间:2017-08-07 07:11:03

标签: javascript excel office-js

我试图获取最后一个选定单元格的详细信息 - 值,地址等 到目前为止,我无法做到这一点 - 我最接近的是获得当前选定的单元格,这显然不能满足我的需求。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您尝试获取对先前所选单元格的引用,则以下操作。创建一个名为lastRangeAddress的全局变量。然后为 Workbook.onSelectionChanged 事件分配处理程序。 跟随是一个处理程序,它将当前单元格变为黄色并将最后一个(即先前选定的)单元格选为蓝色。查看此工作的最简单方法是在Excel中安装Script Lab。在Excel中打开它并打开选择已更改代码段。在顶部附近的按钮处理程序赋值语句下面添加全局变量:let lastRangeAddress: string;。然后将 onSelectionChange 方法替换为下面的方法。在脚本实验室中打开运行窗格,按添加事件处理程序按钮,然后开始单击单元格。

要读取lastRange的属性,您需要加载它们并进行同步。

async function onSelectionChanged() {
tryCatch(() => Excel.run(async (context) => {

    if (lastRangeAddress) {
        const lastRange = context.workbook.worksheets.getActiveWorksheet().getRange(lastRangeAddress);
        lastRange.format.fill.color = "blue";
    }        

    const range = context.workbook.getSelectedRange();
    range.format.fill.color = "yellow";
    range.load("address");

    await context.sync();

    lastRangeAddress = range.address;
}));

}