Excel里引用VBA的自定义函数,如何自动重新计算?
请教:用VBA写的一个自定义函数,比如:getABC()返回一个全局变量strAbc的值在单元格里用"=getABC()"来返回strAbc的值但在全局变量strAbc的...
请教:
用VBA写的一个自定义函数,比如:getABC()
返回一个全局变量strAbc的值
在单元格里用"=getABC()"来返回strAbc的值
但在全局变量strAbc的值改变后
所有引用=getABC()的单元格都不自动重新计算
还是显示strAbc未改变前的值
只有双击单元格再回车才会显示新值
求解!!! 展开
用VBA写的一个自定义函数,比如:getABC()
返回一个全局变量strAbc的值
在单元格里用"=getABC()"来返回strAbc的值
但在全局变量strAbc的值改变后
所有引用=getABC()的单元格都不自动重新计算
还是显示strAbc未改变前的值
只有双击单元格再回车才会显示新值
求解!!! 展开
展开全部
在自定义函数代码前加一行
application.volatile
易失标记
application.volatile
易失标记
追问
试过了啊!
没有效果!
怎么才能上传附件呢,我这有个示例
追答
这里贴上微软官方APPLICAITON.VOLATILE的解释
Application.Volatile 方法 (Excel)
将用户定义函数标记为易失性。每当在工作表中任何单元格中进行计算的时间,必须重新计算可变函数。仅当输入的变量更改时重新计算非易失性函数。如果它不在用户定义的函数用于计算的工作表中的单元格,则此方法将不起作用。
看你这种情况是通过进程改变全局变量,想让单元格中自定义函数返回新的变量值
这样的话建议在修改设置全局变量的进程中
加个工作表重算方法
ActiveSheet.Calculate
将活动工作表重算
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-12
展开全部
把这个函数的调用写进WORKSHEET_CHAGE事件中。
更多追问追答
追问
然后呢?
追答
这个事件的意思就是你的单元格一变化就会自动执行这个事件里的代码,里面如果你把这个函数的调用写在里面的话,就会自动调用它了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只是需要触发重算,是数值的话,用“查找”“替换”,在函数后面加一个“+0”,就OK,只需要一部分数据重算,那就选中那部分数,用“查找”“替换”加一个“+0”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |