【问题标题】:How to get adress of last non empty cell in a excel using MACROS(VBA)如何使用MACROS(VBA)获取excel中最后一个非空单元格的地址
【发布时间】:2014-11-22 13:36:55
【问题描述】:

我想获取 Excel 工作表中最后一个非空单元格的单元格地址。基本上我想要最后一个非空单元格的行号和列号/名称。我发现很少有人能找出最后一个非空单元格中的值,但我需要的是单元格地址而不是内容。

【问题讨论】:

  • “最后”的定义是什么?
  • 假设有一个从 A1 到 D4 的表格,并且在 Excel 中没有低于该值的单元格,那么 D4 将是最后一个非空单元格。如果表格下方的 Z44 有某个值,则最后一个非空单元格将是 Z44。我想用宏得到这个 Z44
  • 从你所说的,你已经知道单元格在哪里,所以不要使用range().value,而是使用range().address。下次显示你已经拥有的代码

标签: vba excel


【解决方案1】:

对于像这样的数据:

大多数人都希望找到蓝色单元格:

Sub FindBlue()
    Dim rng As Range
    Set rng = Cells.Find(What:="*", After:=Cells(1), SearchDirection:=xlPrevious, searchorder:=xlByRows)
    MsgBox rng.Address(0, 0)
End Sub

如果你想要 黄色 单元格,那么:

Sub FindYellow()
    Dim rng As Range
    Set rng = Cells.Find(What:="*", After:=Cells(1), SearchDirection:=xlPrevious, searchorder:=xlByColumns)
    MsgBox rng.Address(0, 0)
End Sub

【讨论】:

  • 我可以在这两个函数中分别获取行名和列名吗?我想要 C 和 14 与 FindBlue 和 E 和 7 分开使用 FindYellow
猜你喜欢
  • 1970-01-01
  • 2011-06-19
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 2012-03-13
相关资源
最近更新 更多