【发布时间】:2012-12-21 10:40:07
【问题描述】:
我正在尝试在 A 列中查找包含具有以下代码的值的最后一行:
LastRow = DataWorksheet.Range("A:A").Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
这适用于大多数情况,除了最后几行被过滤掉。例如,假设我们有 30 行数据。如果 1-10 行可见,11-20 行被过滤掉,21-30 行可见,则成功找到最后一行:返回 30。当一切可见且过滤掉 21-30 行时,LastRow 返回 1。
请注意,如果我手动隐藏而不是过滤掉第 21-30 行,它会告诉我最后一行是 20。
什么给了?如果最后一行被过滤,我如何让它确定最后一行是什么?
编辑: 现在似乎 LastRow 正在挑选最后一个 unfiltered 行,这与其之前的行为明显不同。一旦我能够更好地隔离我遇到的错误/不一致,我将更新这篇文章。
【问题讨论】:
-
...我真的很困惑-您的代码给了我最后未过滤的行,而@MattCrum's 给了最后一行数据...似乎您可以得到...
-
试试这个stackoverflow.com/questions/11169445/… 使用
.Find方法 -
Sid,如果最后一行被隐藏,将找不到正确的最后一行。
标签: excel excel-2007 vba