以编程方式获取Sheet允许的最大列数和行数

时间:2014-03-18 15:02:37

标签: excel vba

在生病的Excel(我使用Office 10)VBA宏中,我需要捕获用户设法创建具有最大列数或行数的工作表的情况。

我不记得这是怎么发生的,我也不在乎;但我们大多数人都看过Excel工作表的有效工作表大小为16384个单元格宽度和/或1048576个单元格高度 - 即使工作表上只有少数非空单元格。

我只想在VBA代码中检测到这种情况。

工作表Rows.CountColumns.Count当然会返回数字,我可以分别检查它们是否等于163841048576

但是,这些限制与版本有关。

所以我的问题是:

如何在不编码依赖于版本的if语句的情况下获取VBA中给定Excel工作表中行数和列数的最大限制?每个限制值可能有一个常量,但我还没找到它。

注意我不是在寻找Worksheet.UsedRange的大小。我想确定UsedRange是否已扩展到整个可用的“表空间”,这通常只是偶然发生,但是 - 它发生了,我想检测那些情况。

我也不是在寻找每个Excel版本的限制。 (这很容易获取。)我不想对这些值和版本号进行硬编码。

1 个答案:

答案 0 :(得分:10)

实现此目的的最简单方法是将UsedRange的行数和列数与您的工作表的行数和列数进行比较。

例如:

If ActiveSheet.UsedRange.Rows.Count = ActiveSheet.Rows.Count Then
   ... However you want to deal with this scenario ...
End If

与列数类似。