如何使用Excel JS API获取ActiveCell周围的当前区域?
在VBA中,这是
Set rng=ActiveCell.CurrentRegion发布于 2021-03-14 00:42:14
JavaScript接口中的current region属性现在已经实现。该属性称为getSurroundingRegion()
发布于 2016-10-22 01:22:24
没有直接的等价物,但我们有一个range.getUsedRange(),它将接受现有的范围,并为您提供一个代表非空部分的较小范围。请注意,如果整个范围内没有任何内容,此方法将抛出not-found错误(因为它实际上是一个空范围,Excel无法表达)。
如果您确实需要CurrentRegion场景(我很想了解更多),您可以首先获取使用的范围(以确保不会加载太多数据),然后加载values属性,然后执行range.getExpandedRange(indexOfLastRow, indexOfLastColumn)。
顺便说一句,与VBA的usedRange不同,JS "getUsedRange()“总是创建当前使用范围的准确快照(VBA one可能会变得陈旧),我们不仅在工作表上公开它,而且还在给定的范围上公开它。
更新
我的意思是有几种情况,一种更简单,另一种更难。
更简单的:您大致知道需要的范围,但只需对其进行修剪即可。例如,您知道在列A:C中有一个类似于表的实体,但您不知道行数。这就是为什么
worksheet.getRange("A:C").getUsedRange()会让你得到你想要的。
The harder :您可以使用getUsedRange()来裁剪您可以裁剪的单元格,然后加载range.values并手动搜索每个单元格都为空的行和列("")。有了它之后(假设您发现您关心的相对行索引为5,列索引为2),您可以这样做
originalRange.getCell(0, 0).getExpandedRange(rowIndex, columnIndex)上面的具体示例:您在A2:C7中有数据,尽管工作表的getUsedRange()要大得多(因此我的建议可以尝试通过执行range.getUsedRange()进一步缩减它)。但是对于本例,让我们假设工作表上的getUsedRange返回了一个对应于A1:Z100的范围。worksheet.getRange(0, 0)将得到第一个单元格,然后您可以将其展开5行2列(您可以通过简单而乏味的数组迭代找到它),以获得您关心的范围。合乎道理?
https://stackoverflow.com/questions/40182053
复制相似问题