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

The*_*One 6 excel vba

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

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

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

一个sheet's Rows.CountColumns.Count过程的返回的数字,我可以检查他们是否等于163841048576分别.

但是,这些限制取决于版本.

所以我的问题是:

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

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

我也不是在寻找每个Excel版本的限制.(这很容易谷歌.)我不想硬编码这些值和版本号.

Joh*_*tos 10

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

例如:

If ActiveSheet.UsedRange.Rows.Count = ActiveSheet.Rows.Count Then
   ... However you want to deal with this scenario ...
End If
Run Code Online (Sandbox Code Playgroud)

与列数类似.