EXCEL VBA 公式计算问题小结

首先推荐一个很不错的EXCEL编程学习网站:http://club.excelhome.net/

问题背景:最近同事遇到两个问题,描述如下。

场景1:Excel工具,某单元格为复杂公式,此公式来源于其他工作表中的数据,且调用自定义函数。当改变数据源的值时,公式单元格的值变为#Value!,选中该公式单元格,然后回车,发现公式单元格的值变成正确的数值结果。问题必然重现。

场景2:VB工具,查询并计算部分数据,将excel模板文件中的数据源进行填充,excel公式单元格也为复杂公式,当数据源填充时,公式单元格的计算结果自动更新。但VB读此excel文件时,却发现,所取公式单元格的值为#Value!。如果用VB调用工作薄保存后,再取该公式单元格的值,则能正常取到。

针对以上两个问题,百思不得其解。经过在上面的excel学习网站中搜索,整理,基本解决方案如下:

1.首先要保证excel选项中的自动计算被勾选。

2.尝试将公式单元格的格式修改为常规。

3.尝试将所有工作表中的所有单元格全选,设置格式为常规。

4.尝式修正公式,可用VBA代码来实现。...fm=cell.formula,cell.formula=fm...

5.查找替换:将所有"="查找替换为"="。类似于功能4,其实是将公式进行了刷新。

6.修复excel文件。

相关推荐