【发布时间】:2017-02-05 09:07:44
【问题描述】:
我正在寻找与 Excel VBA Intersect 方法等效的 Javascript。我需要找到活动单元格表。基本上我对表格所做的一切都是基于用户当前选择的表格。 IIRC,目前没有办法直接做到这一点。所以我想做的基本上是这样的:
- 获取选定的范围(仍然不完美,因为我真的只想要 ActiveCell,而不是 Selection)。
- 获取工作表。
- 遍历工作表上的所有表格。
- 检查每个表格,查看所选范围是否在表格范围内。
我有点胡思乱想,这就是我目前所拥有的,但它不起作用......
Excel.run(function(ctx) {
var Selection = ctx.workbook.getSelectedRange();
var Tables = ctx.workbook.tables;
var TableNames = ctx.workbook.tables.load("name");
for (var i = 0; i < TableNames.items.length; i++)
{
var Table = ctx.workbook.tables.getItem(TableNames.items[i].name);
Table.getRange().load('address');
var Intersect = Selection.getBoundingRect(Table.getRange().address);
if (Intersect != null) {return ctx.sync().then(function() {
TableNames.items[i].name;
})};
}
return ctx.sync();
}).catch(function(error) {
console.log(error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
如果 API 是原生的,这将是向前迈出的重要一步。 ;)
谢谢, 扎克
【问题讨论】: