运行vba过程时为什么没有调用的函数会自己运行
时间:2011-08-12
来源:互联网
我在分步运行vba过程时,却发现跳到了函数过程中运行,而不止运行一个函数过程,但我却没有调用函数过程,为什么会自己运行函数过程?
我在运行vba其他过程中也常发现这个问题,但始终找不到原因。请位老师指点一下,多谢了。
我在运行vba其他过程中也常发现这个问题,但始终找不到原因。请位老师指点一下,多谢了。
作者: tnzmjt 发布时间: 2011-08-12
很简单,只要你在表中使用了自定义函数,
那么在执行其它宏的过程中,这些个自定义函数都会各自独立运算一次。
解决方法是:
在调试vba过程中,把不需要参与计算的自定义函数先停用。
另外,如果你设置了断点来调试,那么就无所谓了。
让它们正常运行好了。
那么在执行其它宏的过程中,这些个自定义函数都会各自独立运算一次。
解决方法是:
在调试vba过程中,把不需要参与计算的自定义函数先停用。
另外,如果你设置了断点来调试,那么就无所谓了。
让它们正常运行好了。
作者: 香川群子 发布时间: 2011-08-12
哦,原来这样啊,那再请问老师,如何在调试vba过程中,把不需要参与计算的自定义函数停用?
作者: tnzmjt 发布时间: 2011-08-12
哦,知道了,把表中调用函数的公式取消。谢谢香川群子对我的帮助。

作者: tnzmjt 发布时间: 2011-08-12
引用:
原帖由 tnzmjt 于 2011-8-12 11:03 发表哦,原来这样啊,那再请问老师,如何在调试vba过程中,把不需要参与计算的自定义函数停用?
例如:=zdy(a)
前面加逗号改为 '=zdy(a)
前面加空格改为 【 =zdy(a)】
但这样做很麻烦,以后还要一个一个改回去……
容易错漏。
…………
因此,可以在vba代码中停用:
例如:
Function Nrows(m)
Nrows = Range((m), (m)).MergeArea.Rows.Count
End Function
其中加一句停用的代码:
Function Nrows(m)
Exit Function
Nrows = Range((m), (m)).MergeArea.Rows.Count
End Function
调试完成后,把这一句代码注释掉(即前面加个逗号【'】)就OK啦。
Function Nrows(m)
'Exit Function
Nrows = Range((m), (m)).MergeArea.Rows.Count
End Function
作者: 香川群子 发布时间: 2011-08-12
谢谢香川群子老师,这种方法不错,用后麻烦少多了,非常感谢。
作者: tnzmjt 发布时间: 2011-08-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28