为了账号安全,请及时绑定邮箱和手机立即绑定

如何用数据计算Excel中的行数?

如何用数据计算Excel中的行数?

幕布斯7119047 2019-11-29 10:25:59
列A具有这样的数据(即频繁的空白单元格):HEADING  <-- this is A1kfdslfdjgnmfdkjgdfkj4353fdjk  <-- this is A9我希望能够获得具有数据的最后一个单元格的单元格引用。因此,在上面的示例中,我想返回:A9我已经试过了,但是它停在第一个空白单元格(即返回A4)numofrows = destsheet.Range("A2").End(xlDown).Row - 1
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

我喜欢这样:


ActiveSheet.UsedRange.Rows.Count


列数也可以这样做。对我来说,永远工作。但是,如果您在另一列中有数据,那么上面的代码也会考虑它们,因为该代码正在查找工作表中的所有单元格范围。


查看完整回答
反对 回复 2019-11-29
?
SMILET

TA贡献1796条经验 获得超4个赞

最安全的选择是


Lastrow =  Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row

Lastcol =  Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column

不要使用UsedRange或SpecialCells(xlLastCell)或End(xlUp)。如果您以前删除了一些行,所有这些方法可能会导致错误的结果。Excel仍会计算这些不可见的单元格。


如果您删除单元格,保存工作簿,关闭然后重新打开,这些方法将再次起作用。


查看完整回答
反对 回复 2019-11-29
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

这将独立于Excel版本(2003、2007、2010)运行。前一张纸有65536行,而后两张纸则有大约一百万行。Sheet1.Rows.Count根据版本返回此数字。


numofrows = Sheet1.Range("A1").Offset(Sheet1.Rows.Count - 1, 0).End(xlUp).Row

或同等但较短


numofrows = Sheet1.Cells(Sheet1.Rows.Count,1).End(xlUp)

这将从列A的底部向上搜索第一个非空单元格,并获取其行号。


如果您在其他列中有更深的数据,这也可以使用。因此,例如,如果您获取示例数据并在单元格FY4763中写了一些内容,则上面的内容仍将正确返回9(而不是4763,涉及该UsedRange属性的任何方法均会错误地返回)。


请注意,实际上,如果要使用单元格引用,则应使用以下内容。您不必先获取行号,然后构建单元格引用。


Set rngLastCell = Sheet1.Range("A1").Offset(Sheet1.Rows.Count - 1, 0).End(xlUp)

请注意,此方法在某些情况下会失败:


最后一行包含数据

最后一行被隐藏或过滤掉

因此,请注意,如果您打算将1,048,576行用于这些操作!


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 1697 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信