【发布时间】:2017-11-24 06:11:54
【问题描述】:
我的工作表有 29 行和 39 列。 目前我使用
lrow = ActiveSheet.UsedRange.Rows.count --> 用于获取使用的行数lColumn = ActiveSheet.UsedRange.Columns.count --> 用于获取使用的列数
Excel 每次运行时都会给出错误的计数。有时它会给出:
行数:29 列数:784
在其他运行中,它提供
行:32755 和列:784
在其他运行中,它给出不同的值。
我检查了 29 行和 39 列之后没有垃圾数据。还,
在填写数据之前,我使用以下命令清除工作表:ActiveWorkbook.Worksheets("Field Difference").Cells.Delete
我希望ActiveWorkbook.Worksheets("Field Difference").Cells.Delete 彻底清除工作表并清除工作表上的垃圾数据(如果有)。我还能如何确保工作表中没有垃圾数据。
我知道我们还有其他选项,例如:ActiveWorkbook.Worksheets("Field Difference").UsedRange.ClearContents - 仅清除内容ActiveWorkbook.Worksheets("Field Difference").UsedRange.Clear - 也可以清除格式。
请让我知道为什么我得到错误的行数和列数的值以及出路是什么。我可以使用任何其他可靠的方式来获取UsedRange 行数和UsedRange 列数。
【问题讨论】:
-
简短回答:避免使用
ActiveSheet和UsedRange,它们都不可靠,尤其是结合使用时... -
找到 UsedRange 行和列的解决方案是什么?
-
我不能为this answer 申请信用,但基本上
UsedRange在所有情况下都不可靠。例如,当数据已从范围中清除时,Excel 仍将这些单元格计为“已使用”。链接示例提供了一种确定当前使用范围的方法。