在一个有问题的Excel(我使用Office 10)VBA宏中,我需要捕获用户意外创建了具有最大列数或行数的工作表的情况。我不记得是如何发生的,也不在意;但我们大多数人都见过Excel工作表,其活动工作表大小为16384个单元格的宽度和/或1048576个单元格的高度--即使工作表上只有少数非空单元格。我只想在VBA代码中检测到这种情况。当然,工作表的
Rows.Count
和Columns.Count
会返回这些数字,我可以分别检查它们是否等于16384
或1048576
。然而,这些限制是版本相关的。所以我的问题是:如何在VBA中获取给定Excel工作表中行数和列数的最大限制,而不编写版本相关的if语句?可能有每个限制值的常量,但我还没有找到它们。请注意,我不是在寻找Worksheet.UsedRange
的大小。我想确定UsedRange
是否已扩展到整个可用的“工作表空间”,这通常只会意外发生,但是--它确实发生了,我想检测到这种情况。我也不在寻找每个Excel版本的限制。(这很容易通过谷歌搜索获得。)我不想硬编码这些值和版本号。
ActiveSheet.UsedRange.Rows.Count
和ActiveSheet.Rows.Count
进行比较有何不同呢?列也是同样的情况吗? - John Bustos