首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Office-JS获取当前区域

使用Office-JS获取当前区域
EN

Stack Overflow用户
提问于 2016-10-22 01:06:10
回答 2查看 492关注 0票数 3

如何使用Excel JS API获取ActiveCell周围的当前区域?

在VBA中,这是

代码语言:javascript
复制
Set rng=ActiveCell.CurrentRegion
EN

回答 2

Stack Overflow用户

发布于 2021-03-14 00:42:14

JavaScript接口中的current region属性现在已经实现。该属性称为getSurroundingRegion()

票数 1
EN

Stack Overflow用户

发布于 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中有一个类似于表的实体,但您不知道行数。这就是为什么

代码语言:javascript
复制
worksheet.getRange("A:C").getUsedRange()

会让你得到你想要的。

The harder :您可以使用getUsedRange()来裁剪您可以裁剪的单元格,然后加载range.values并手动搜索每个单元格都为空的行和列("")。有了它之后(假设您发现您关心的相对行索引为5,列索引为2),您可以这样做

代码语言:javascript
复制
originalRange.getCell(0, 0).getExpandedRange(rowIndex, columnIndex)

上面的具体示例:您在A2:C7中有数据,尽管工作表的getUsedRange()要大得多(因此我的建议可以尝试通过执行range.getUsedRange()进一步缩减它)。但是对于本例,让我们假设工作表上的getUsedRange返回了一个对应于A1:Z100的范围。worksheet.getRange(0, 0)将得到第一个单元格,然后您可以将其展开5行2列(您可以通过简单而乏味的数组迭代找到它),以获得您关心的范围。合乎道理?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40182053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档