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

Excel 以编程方式获取工作表中允许的最大列数和行数,excel,vba,Excel,Vba,在有问题的Excel(我使用Office 10)VBA宏中,我需要捕获这样一种情况,即用户意外地创建了列数或行数最多的工作表 我不记得那是怎么发生的,我也不在乎;但我们大多数人都看到过Excel表格,其活动表格大小为16384个单元格(宽)和/或1048576个单元格(高)——尽管表格上只有少数非空单元格 我只是想在VBA代码中检测这种情况 一张工作表的行。Count和列。Count当然返回数字,我可以检查它们是否分别等于16384或1048576 但是,这些限制取决于版本 所以我的问题是: 如

在有问题的Excel(我使用Office 10)VBA宏中,我需要捕获这样一种情况,即用户意外地创建了列数或行数最多的工作表

我不记得那是怎么发生的,我也不在乎;但我们大多数人都看到过Excel表格,其活动表格大小为16384个单元格(宽)和/或1048576个单元格(高)——尽管表格上只有少数非空单元格

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

一张工作表的
行。Count
列。Count
当然返回数字,我可以检查它们是否分别等于
16384
1048576

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

所以我的问题是:

如何在VBA中获得给定Excel工作表中行数和列数的最大限制,而无需对依赖于版本的if语句进行编码?每个限制值可能都有一个常量,但我仍然无法找到它

注意:我不是在寻找
工作表的大小。请使用dRange
。我想确定
UsedRange
是否已扩展到整个可用的“sheetspace”,这通常只是偶然发生的,但是--它发生了,我想检测这种情况


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

实现这一点的最简单方法是将UsedRange的行和列计数与工作表的行和列计数进行比较

例如:

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

与列计数类似。

也许我不明白,但是比较一下
ActiveSheet.UsedRange.Rows.count
vs
ActiveSheet.Rows.count
和类似的列计数如何?很高兴我能帮上忙-我现在就发布它……我没有想到ActiveSheet.Rows.count总是返回尽可能大的行索引。谢谢。:)很高兴我能帮上忙-祝你好运!!