我很难从SpecialCells(xlCellTypeLastCell)
Excel VBA 中获得准确的值。以下代码应输出“TrackedItems”工作表中第一个空行的行号。工作表有 8 行,但代码输出 25(应该输出 9):
emptyRow = 1 + wb.Worksheets("TrackedItems").Cells.SpecialCells(xlCellTypeLastCell).Row
MsgBox emptyRow
在这个特定的例子中,这个答案将解决我的问题,因为电子表格不是稀疏填充的(没有空白单元格与非空白单元格混合)。但是,我使用过xlCellTypeLastCell
很多次,并没有遇到过这个问题,包括在数据稀疏的情况下。是什么原因导致xlCellTypeLastCell
以这种方式行事?有什么方法可以让它正常运行,还是我必须依赖自定义编码的函数?我应该用这些函数替换我的旧工作xlCellTypeLastCell
,还是它当前工作的事实是否意味着它以后不会中断(至少如果我不更改这些工作簿中的任何代码)?