Ctrl-End不会将我带到最后一个单元格

时间:2013-05-08 08:04:34

标签: excel excel-vba vba

Ctrl-end键应该将我带到底部,最右边的单元格。但是,在某些情况下,它超出了这个范围,这意味着它会减少数百个单元格,即使这些单元格中实际上没有数据。

您是否可以建议VBA脚本如何清理导致这种情况的可能不可见的数据?我很确定它不适用于常规删除,尽管这样做,它的行为方式仍然相同。

2 个答案:

答案 0 :(得分:11)

Ctrl-End确实会将您带到右下方的单元格,它只是使用不同的规则来决定您应该决定该单元格应该是什么。几乎所有以任何方式引用的单元格都将包含在决策中。这很烦人,但这就是Excel"的工作原理"。

Here's a description of how to address the problem

用来解释:

  1. 选择工作表中包含数据的最后一个单元格
  2. 删除任何未使用的行:

    • 使用数据从最后一个单元格向下移动一行。
    • 按住Ctrl和Shift键,然后按向下箭头键
    • 在所选单元格中单击鼠标右键,然后从快捷菜单中选择“删除”
    • 选择整行,单击“确定”。
  3. 删除整行

  4. 要删除任何未使用的列:

    • 使用数据从最后一个单元格向右移动一列。
    • 按住Ctrl和Shift键,然后按向右箭头键
    • 在所选单元格中单击鼠标右键,然后从快捷菜单中选择“删除”
    • 选择整列,单击“确定”。
  5. 保存文件。注意:在旧版本的Excel中,您可能必须先保存,然后在重置使用范围之前关闭并重新打开文件。

答案 1 :(得分:4)

此脚本将重置运行时处于活动状态的任何工作表的上次使用的行。

Sub Reset()

    Dim lngCount As Long

    lngCount = ActiveSheet.UsedRange.Rows.Count

End Sub