首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实际减少工作表的使用范围(Excel add-in)

如何实际减少工作表的使用范围(Excel add-in)
EN

Stack Overflow用户
提问于 2019-12-02 23:37:02
回答 1查看 137关注 0票数 0

我的插件从每个工作表中删除了很多行,但是当我按下ctrl + end时,光标仍然移动到初始区域的最后一个单元格,它现在是空的。这是我正在做的事情的一个简略版本:

代码语言:javascript
复制
const used_range = sheet.getUsedRange()

const rows = used_range.rowCount
const columns = used_range.columnCount

const full_content = this.format(used_range) // returns a new matrix of values, but with some rows removed

used_range.clear()

sheet.getRangeByIndexes( 0 , 0, full_content.length, columns ).values = full_content
sheet.getRangeByIndexes( full_content.length, 0, (rows - full_content.length), columns ).delete('Up')

await context.sync()

第二个sheet.getRangeByIndexes包含剩余的范围。如果我设置了填充的颜色,我可以看到选择的范围是正确的,所以我预计调用delete('Up')会删除这些行,这样它们就不再是使用的范围的一部分,但工作表的最后一行仍然是删除它们之前的行。这是一个问题,因为即使它们是空的,这些行也会影响文件大小。

有趣的是,如果我执行used_range.delete('Up')并按下ctrl + end,单元格A1将被选中。

有没有办法强制缩小工作表范围?还是我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 23:52:56

从excel中删除(以前使用过的)单元格时,使用的范围不一定会立即重置。我不完全确定原因,因为我正在努力寻找关于它的文档,但很可能是因为最后一个操作仍然是可逆的。

要解决此问题,您可以保存该文件,或关闭并再次打开它。然后,Excel将正确地重新计算已用范围,并将按预期显示。

编辑:这是一个相当常见的问题,称为“幽灵细胞”,它很可能与仍然存在于内存中的细胞有关。

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

https://stackoverflow.com/questions/59142198

复制
相关文章

相似问题

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