Excel里引用VBA的自定义函数,如何自动重新计算?

请教:用VBA写的一个自定义函数,比如:getABC()返回一个全局变量strAbc的值在单元格里用"=getABC()"来返回strAbc的值但在全局变量strAbc的... 请教:
用VBA写的一个自定义函数,比如:getABC()
返回一个全局变量strAbc的值

在单元格里用"=getABC()"来返回strAbc的值

但在全局变量strAbc的值改变后
所有引用=getABC()的单元格都不自动重新计算
还是显示strAbc未改变前的值

只有双击单元格再回车才会显示新值

求解!!!
展开
 我来答
oldyuanyuan
2014-03-12 · TA获得超过139个赞
知道答主
回答量:76
采纳率:0%
帮助的人:39.1万
展开全部
在function开始处加一句,Application.Volatile,用此句讲自定义函数设置为易失性函数,这样才能保证数据发生变化时,函数重新计算。
比如:
Function getABC()
Application.Volatile
'函数主体
End Fcuntion
更多追问追答
追问
加上了,没有效果!
EXCEL里的内置函数都可以自动计算
只有VBA写的自定义函数不行
追答
保存以后重新打开试试.
百度网友360220a
推荐于2017-10-01 · TA获得超过820个赞
知道小有建树答主
回答量:733
采纳率:0%
帮助的人:384万
展开全部
在自定义函数代码前加一行
application.volatile
易失标记
追问
试过了啊!
没有效果!
怎么才能上传附件呢,我这有个示例
追答
这里贴上微软官方APPLICAITON.VOLATILE的解释
Application.Volatile 方法 (Excel)
将用户定义函数标记为易失性。每当在工作表中任何单元格中进行计算的时间,必须重新计算可变函数。仅当输入的变量更改时重新计算非易失性函数。如果它不在用户定义的函数用于计算的工作表中的单元格,则此方法将不起作用。
看你这种情况是通过进程改变全局变量,想让单元格中自定义函数返回新的变量值
这样的话建议在修改设置全局变量的进程中
加个工作表重算方法
ActiveSheet.Calculate
将活动工作表重算
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-12
展开全部
把这个函数的调用写进WORKSHEET_CHAGE事件中。
更多追问追答
追问
然后呢?
追答
这个事件的意思就是你的单元格一变化就会自动执行这个事件里的代码,里面如果你把这个函数的调用写在里面的话,就会自动调用它了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
矿藏开采
2018-03-06
知道答主
回答量:13
采纳率:0%
帮助的人:1.4万
展开全部
只是需要触发重算,是数值的话,用“查找”“替换”,在函数后面加一个“+0”,就OK,只需要一部分数据重算,那就选中那部分数,用“查找”“替换”加一个“+0”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式