excel - UsedRange.Rows.Count 显示的数字与实际数字不同
问题描述
我需要一些关于 VBA 代码的专家建议。我创建了一个程序来比较两个简短的报告(相同的格式,从系统生成)。我for
从第一行开始使用循环,直到最后一个使用UsedRange.Rows.Count
. 我遇到的问题是 UsedRange.Rows.Count 总是返回 30,即使报告通常比这短 - 通常大约 20-25 行。即使我清除这些行中的内容,它也会返回 30。只有当我永久删除直到第 30 行的空白行时,它才会返回正确的数字。
为什么会这样?这让我很困扰,因为由于某种原因,宏突出显示了空白行(从实际使用的最后一行到第 30 行),将它们显示为报告之间的差异,而它们存在并且在两者中都是相同的(空白)。
谢谢
解决方案
UsedRange
将扩展以包括 Excel 注册为包含任何数据的所有单元格。值、公式、格式——甚至(我怀疑这可能是这里发生的事情)一个已删除值的单元格。之外的任何东西都UsedRange
被视为尚未正式存在。
打个比方,这就是空盒子和没有盒子(工作表单元格是盒子)之间的区别。 UsedRange
告诉你最后一个盒子在哪里,即使你已经清空它(使用Value = ""
or ClearContent
);只有删除行/列/单元格才能摆脱框本身。
有很多 比使用更好的方法来获取数据的大小UsedRange
(尽管它至少提供了一个上限)
例如,如果您的数据是连续的,那么您可以选择单个单元格(例如Range("A1")
/ Cells(1,1)
),然后获取CurrentRegion
( Cells(1,1).CurrentRegion.Rows.Count
)。或者,如果您知道一列始终包含数据,则可以使用End(..)
查找最底部的单元格 ( Cells(Rows.Count,1).End(xlUp).Row
)
推荐阅读
- google-coral - 连接环境传感器板后 Coral 开发板不启动
- afnetworking-3 - 带有查询的 AFNetworking 4.0 GET 请求不起作用
- tinymce - 表格单元格和 TinyMCE 的问题
- excel - 箭头键不会将光标移动到下一个单元格
- python - 如何在 vtk python 中自定义标量
- reactjs - Tailwindcss 使用悬停在 group-hover 上不起作用
- javascript - 在 Javascript 中,我可以使用 While 循环来等待 iframe htm 中的函数加载吗?
- python - 如何计算张量流中不可训练的权重数量?
- html - 固定在 Keith Clarks 视差组内的位置
- javascript - 包含来自 metro4 的 js 库后无法为 JSP 编译类