Excel 以编程方式获取工作表中允许的最大列数和行数
在有问题的Excel(我使用Office 10)VBA宏中,我需要捕获这样一种情况,即用户意外地创建了列数或行数最多的工作表 我不记得那是怎么发生的,我也不在乎;但我们大多数人都看到过Excel表格,其活动表格大小为16384个单元格(宽)和/或1048576个单元格(高)——尽管表格上只有少数非空单元格 我只是想在VBA代码中检测这种情况 一张工作表的Excel 以编程方式获取工作表中允许的最大列数和行数,excel,vba,Excel,Vba,在有问题的Excel(我使用Office 10)VBA宏中,我需要捕获这样一种情况,即用户意外地创建了列数或行数最多的工作表 我不记得那是怎么发生的,我也不在乎;但我们大多数人都看到过Excel表格,其活动表格大小为16384个单元格(宽)和/或1048576个单元格(高)——尽管表格上只有少数非空单元格 我只是想在VBA代码中检测这种情况 一张工作表的行。Count和列。Count当然返回数字,我可以检查它们是否分别等于16384或1048576 但是,这些限制取决于版本 所以我的问题是: 如
行。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
vsActiveSheet.Rows.count
和类似的列计数如何?很高兴我能帮上忙-我现在就发布它……我没有想到ActiveSheet.Rows.count总是返回尽可能大的行索引。谢谢。:)很高兴我能帮上忙-祝你好运!!