Excel中经常需要使用到自动求和公式,自动求和具体该如何操作呢?接下来小编举例简单的例子告诉大家excel设置自动求和公式的方法。excel设置自动求和公式的方法设置自动求和公式步骤1:将鼠标放在要求和数据区域的紧挨着的下面一个单元格,如下图的D10单元格,然后点击【开始】-【自动求和】按钮就可以自动求D......
Excel VBA中让你意想不到的陷阱
Excel函数
2022-02-11 18:04:22
VBA代码由于简单实用,大家都很喜欢,但有些代码怎么看都没有问题,调试时却总是出错?
究竟是为什么呢,其实代码本身没有错,在正常情况下都没有问题,错在运行环境本身出了问题,下面举例予以说明:
1、微软在定义属性时,进行了长度限制
比如:区域的Address属性,虽然是字符串,却是定长字符串,不能超过256个字符。
如果用它来获取单元格地址,只能获取前256个字符。
(一般情况下不会出问题,但如果单元格区域是很零散的单元格区域,就可能出错)
2、VBA中属性解释与实际不符
比如:Cells.SpecialCells(xlCellTypeLastCell),微软帮助中:用于获取“已用区域中的最后一个单元格”,但实际上是获取“已用区域中的最后一个可见单元格”,
如果已用区域最后一个单元格正好被隐藏,就与该属性的定义产生偏差,导致代码达不到预期效果。
3、兼容32位环境的限制
在VB环境中,长整型变量是long,最大支持 2,147,483,647,约21亿,似乎很大了,
在excel2000/2003没有问题,但在excel2007及以上版本中就可能出问题,
如果你执行这一句:MsgBox Cells.Count,肯定会出错,因为现在支持1048576行*16384列,已经21亿,超过了长整型的限制。
而且Rows.count*Columns.count也会出错,其原因也是一样,虽然单个都没有超上限,但结果超长整型上限也不行。
4、VBA代码在VSTO中,由于环境变化,也会出现异常
比如:ActiveSheet.HPageBreaks.add,在VBA、COM中都正常,在VSTO中会导致下一行内容丢失。
因此,在编写代码时预先考虑到以上等情况,可以减少你调试的难度,避免走弯路。
相关文章