我的插件从每张纸上删除了很多行,但是当我按ctrl + end
时,光标仍然移动到初始范围的最后一个单元格,现在该单元格为空。这是我正在做的删节版:
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。
是否有一种方法可以强制缩小图纸范围?还是我做错了?
[从excel中删除(以前使用的)单元格时,使用的范围不一定立即重置。我不确定为什么要努力寻找有关它的文档,但这很可能是因为上一动作仍然是可逆的。
要解决此问题,您可以保存文件,或关闭并再次打开它。 Excel随后将正确地重新计算使用的范围,并且将按预期显示。