excel-vba – 隐藏最后一行时查找Excel电子表格的最后一行

我正在尝试在列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列中找到最后使用的单元格,但是……你需要的是什么?

相关文章
相关标签/搜索