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

标签 excel vba

在有问题的 Excel(我使用 Office 10)VBA 宏中,我需要捕获用户意外创建具有最大列数或行数的工作表的情况。。 p>

我不记得这是怎么发生的,我也不会关心;但我们大多数人都见过 Excel 工作表的事件工作表大小为宽度 16384 个单元格和/或高度 1048576 个单元格 - 即使工作表上只有少数非空单元格。

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

工作表的 Rows.CountColumns.Count 当然会返回数字,我可以检查它们是否等于 16384 或分别为1048576

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

所以我的问题是:

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

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

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

最佳答案

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

例如:

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

与列数类似。

关于excel - 以编程方式获取工作表允许的最大列数和行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483192/

相关文章:

excel - 进入单元格编辑模式并使用 VBA 选择所有单元格文本

vba - Excel VBA - 几秒钟后调用宏来清除状态栏

Excel计数唯一值整列例如A :A

vba - Application.OnKey 错误, "%a"击键

vba - 使用 Range ("cell content"引用单元格会出现错误 1004

c# - 将 .XLS 转换为制表符分隔的 .TXT

c# - 从 Excel API C# 获取单元格值

excel - 在 Change 事件上更新范围的背景颜色索引

excel - 将多张工作表中的同一行复制到一张特定工作表中

VBA - 删除 ActiveSheet.UsedRange.Rows.Count 中的空行