wodeccu 2011-07-27
首先推荐一个很不错的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文件。