Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于字符串值的VBA调用方法_Vba - Fatal编程技术网

基于字符串值的VBA调用方法

基于字符串值的VBA调用方法,vba,Vba,如果我声明了一个字符串数组,并且每个字符串都是子名称,那么我如何在不需要If语句的情况下调用该名称的子名称呢 示例伪代码: Set String Array = {"sub1","sub2","sub3"} for each String str in Array call str 'where str is a Sub next str 我知道如何创建数组和调用sub;我只是不知道如何使用字符串值调用Sub。试试这个: Application.Run (str) 我只是通过做类似的

如果我声明了一个字符串数组,并且每个字符串都是子名称,那么我如何在不需要
If
语句的情况下调用该名称的子名称呢

示例伪代码:

Set String Array = {"sub1","sub2","sub3"}
for each String str in Array
    call str 'where str is a Sub
next str
我知道如何创建数组和调用sub;我只是不知道如何使用字符串值调用Sub。

试试这个:

Application.Run (str)
我只是通过做类似的事情了解到这一点。还可以通过执行以下操作将变量传递给该子系统:

Application.Run (str, "YourValue")

我知道您需要VBA(将删除VB.NET标记)。这段代码是(某种程度上)VBA,但它是错误的(声明是错误的)。而且你到底想要什么也不太清楚。你想叫潜艇吗?好。。。现在更清楚了。通过查看Oliver提供的链接,我更好地理解了您想要什么:)请查看CallByName函数。顾名思义,它会满足你的需求。埃塔,呃,刚刚发现这很可能是VBA-如果是的话,我不认为你可以看看这里:你为什么又添加了VB.NET标记?您希望在VB.NET或VBA中回答此问题吗?不,不是。在VB.NET中,您可以使用一些旧的VB函数(也存在于VBA中),尽管这不是一个推荐的过程。你不能做相反的事;例如:您添加到反射的最后一个标记没有任何意义(这是一个VB.NET名称空间的名称,VBA甚至没有名称空间!!)这就是我要找的