vba - 使用变量调用函数
问题描述
在一个变量中,我存储了一个函数名,但是当我尝试从 sub() 调用它时,我遇到了一些错误“类型不匹配”,也许我做错了。
Public Sub test()
Dim list As Collection
Dim functionName As String
functionName = "asBuiltComplete()"
Set list = functionName
For Each rs In list
Debug.Print rs.getId & " " & rs.getActualDate & " " & rs.getBlDate
Next
End Sub
解决方案
您可以使用Application.Run
:
functionName = "asBuiltComplete"
Set list = Application.Run(functionName)
虽然您可以使用Eval
,Application.Run
在功能上有所限制,因此出现奇怪的可能性较小。
然而,这是一个糟糕的代码。您通常希望尽可能避免使用动态函数名称,而只需调用该函数。
推荐阅读
- angularjs - 如何使用来自不同控制器的参数触发过滤功能
- xml - 将 xml 节点转换为 typescript 定义的类型
- kubernetes - HAProxy 2.0.2 不会为服务中的所有 pod 创建“srv”
- swift - 从集合视图中删除未选择的单元格
- mysql - 问题读取带有条件的选择,但结果为空
- javascript - 双击图像时如何增加数字?
- ansible - 在 host_vars 中追加到来自 group_vars/defaults 的列表
- python - AttributeError:模块“gensim.utils”没有属性“smart_open”
- windows-7 - 通过一些增量或减量更改系统时钟
- reactjs - 带有新变量的 Apollo 重新获取查询组件