强制刷新工作表的"最后"单元格

Lau*_*ent 9 excel vba

在Excel中按Ctrl+ End可以转到工作表的最右下角的单元格.

如果删除最后的行或列并保存工作簿,则会更新最后一个单元格以及滚动条.

我记得有一个单线VBA命令可以运行,无需保存工作簿即可进行更新,但我不记得命令是什么 - 你有什么想法吗?

Lau*_*ent 17

这是答案:

Sub x()
    ActiveSheet.UsedRange
End Sub
Run Code Online (Sandbox Code Playgroud)

运行此命令,将重置最后一个单元格.


小智 15

我找到了一些可以删除那些空白行的东西.您可以判断excel使用的"已使用范围"是否太大,并且当您使用右侧的滚动条时将添加额外的空白行,当您滚动到底部时,它会超出最后一行实际数据.这将导致在将表导入SQL时将额外的空白记录添加到表中.

摆脱它们:

  1. 选择最后一行数据下的整个第一行.按Ctrl+ Shift+ Down Arrow选择所有空白行.
  2. 从"主页"选项卡中选择"清除",然后从"编辑"菜单中选择"全部清除"(白灰色橡皮擦的图片).
  3. 右键单击并选择"删除".
  4. 首先转到单元格A1然后保存.
  5. Ctrl+ Home,然后Ctrl+ End(这应该带您在使用范围内正确的最后一个单元格(以上空行).
  6. 再次单击"保存"

  • Laurent在问如何在VBA中做到这一点,而不是手动进行。 (2认同)

小智 7

如果上述方法均无效,请尝试此操作。

选择未使用的行并更改行高。

现在删除行并保存。

答对了!

  • 谢谢。我研究了为什么这有效。在原始 Excel 文件(在构成 XLSX 的 XML 中)中,所有空白行(从第 1000 行到第 100 万行)每行都设置了 customHeight="1" 属性。这会阻止本页描述的所有其他方法工作。删除行会将它们替换为设置了 customHeight="1" 的新行,因此维度永远不会重置回来。更改行高可以清除此问题。在 <sheetFormatPr> 元素(具有新行/列的默认值)中,还设置了 customHeight="1",因此新行出现了相同的问题。绝对是微软的一个错误! (2认同)