【问题标题】:Go to last non-blank row in excel转到excel中的最后一个非空白行
【发布时间】:2021-10-08 09:11:43
【问题描述】:

亲爱的,

我在想下面的代码会将我带到一列中的最后一个非银行行:

Sub commandtryanderror()
    Range("a1").End(xlDown).Select
End Sub

但是,我发现如果只有单元格 A1 有内容,上面的代码会将我带到 excel 中的最后一行,即行号 1048576 但如果单元格 A2 中有内容并且A3,上面的代码会把我带到A3,这就是我想要的,你能告诉我为什么以及如何纠正程序吗?谢谢。

【问题讨论】:

标签: excel vba range


【解决方案1】:

以下代码有效。它检查您的宏是否会将您发送到工作表的底部。如果是这种情况,它会将您发送到单元格 A1。

Sub find_last_cell()

If Range("A1").End(xlDown) = Range("A1048576") _
    Then
    Range("A1").Select
Else
    Range("A1").End(xlDown).Select
End If

End Sub

请注意,如果您的数据有间隙,则不会传递数据。如果这是一个问题,您可以将宏转换为自下而上的搜索。

【讨论】:

  • 是的,我试过了,它有效,但你能告诉我为什么在我的原始代码中会出现这种现象吗?我一直认为命令 end(Xldown) 会将我带到最后一个非空白行,为什么它会转到第 1048576 行,但是当单元格“a2”有内容时它可以正常工作......
  • 我刚刚找到了这个链接:stackoverflow.com/questions/32192372/… 这似乎是答案...谢谢。
  • 我可以确认。如果想看end(x1[Direction]的效果,使用【ctrl】+【方向箭头】。如果所选单元格和文档边缘之间没有包含数据的单元格,则会跳转到边缘。
猜你喜欢
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多