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

在一个生病的Excel(我使用Office 10)VBAmacros, 我需要陷入的情况下,用户设法创build一个最大数量的行或列意外

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

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

一张表的Rows.Count和Columns.Count当然会返回数字,我可以检查它们是否分别等于163841048576

但是,这些限制是版本相关的。

所以我的问题是:

如何获得VBA中给定的Excel工作表中的行数和列数的最大限制,而无需编码与版本相关的if语句? 每个极限值可能都有一个常数,但我还没有find它。

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

我也没有寻找每个Excel版本的限制。 (这很容易googleable。)我不想硬编码这些值和版本号。

最简单的方法是将您的UsedRange的行数和列数与您的图表的行数和列数进行比较。

例如:

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

与列数相似。