[已解决] 自定义的函数如何在VBA中调用

  [复制链接]
查看140313 | 回复136 | 2021-2-19 00:53:21 | 显示全部楼层 |阅读模式
如题,自己编写了一个自定义函数,且打开excel工作簿后可以正常使用,想问一下如果在vba中调用该自定义函数应该怎么操作。试验了一下,application.worksheetfunction 后面并没有显示该定义函数,求解。谢谢




11193112038081.png 11193112038082.png 11193112038083.png 11193112038084.png 11193112038085.png
11193112038086.rar (825.83 KB, 下载次数: 0)
回复

使用道具 举报

hnhxlxw | 2021-2-19 01:00:21 | 显示全部楼层
直接调用!!!
x = 自定函数名(参数)
回复

使用道具 举报

infantry | 2021-2-19 01:04:22 | 显示全部楼层
直接调用!!!
x = 自定函数名(参数)


我的自定义函数放在了xlam文件中,在vba中调用显示子函数或过程未定义
回复

使用道具 举报

秋天的农药 | 2021-2-19 01:11:22 | 显示全部楼层
ballgd 发表于 2018-11-13 18:13
我的自定义函数放在了xlam文件中,在vba中调用显示子函数或过程未定义


直接调用!如果不行请上传附件!
回复

使用道具 举报

东城大少 | 2021-2-19 01:14:22 | 显示全部楼层
直接调用!如果不行请上传附件!


附件已经上传,麻烦您帮忙看一下谢谢
回复

使用道具 举报

独孤狐 | 2021-2-19 01:19:22 | 显示全部楼层
自定义参数→数据类型是Integer
而代码中使用的参数→数据类型是Range
数据类型不相同,应把数据类型统一为Range

Function addd(a As Range, b As Range)
addd = a + b
End Function

Sub a()
Range("a1") = addd(Range("e7"), Range("e8"))
End Sub
回复

使用道具 举报

yyfreeliang | 2021-2-19 01:25:23 | 显示全部楼层
自定义参数→数据类型是Integer
而代码中使用的参数→数据类型是Range
数据类型不相同,应把数据类型统一 ...


我修改了参数类型,还是出现子函数或过程未定义的错误
回复

使用道具 举报

426 | 2021-2-19 01:29:23 | 显示全部楼层
原因见下楼分析!
回复

使用道具 举报

kevin | 2021-2-19 01:36:23 | 显示全部楼层
因昨天您没提供完整附件,无法测试实际情况?
如果还出现提示,可加上application.
Sub a()


您好,使用application后面没有 带出 addd的方法,出错。我重新传了一下附件,包括加载的自定义函数xlam文件 和 普通的xls文件,麻烦您看一下。谢谢
回复

使用道具 举报

dzzl | 2021-2-19 01:42:23 | 显示全部楼层
ballgd 发表于 2018-11-14 15:36
您好,使用application后面没有 带出 addd的方法,出错。我重新传了一下附件,包括加载的自定义函数xla ...


根据您提供附件,经测试,原因是自定义函数虽然已另存为加载宏,但example工作薄却没有加载该加载宏!
方法:打开example工作薄→点击文件→点击选项→点击加载项→点击转到→找到相应加载宏在方框中打√→点确定
以上适合2010版及以上excel,其它版本请论坛搜加载宏!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则