我正在尝试查找 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 似乎正在挑选最后一个未过滤的行,这与其之前的行为明显不同。一旦我能够更好地隔离我遇到的错误/不一致,我就会更新这篇文章。
最佳答案
这些应该忽略过滤/可见性并为您提供最后使用的行号:
DataWorksheet.UsedRange.Rows.Count
-或-
DataWorksheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
两者都找不到 A 列中最后使用的单元格,但是...这是您需要的吗?
关于excel - 当最后一行隐藏时查找 Excel 电子表格的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200392/