【问题标题】:VBA Call Method based on a string value [closed]基于字符串值的VBA调用方法[关闭]
【发布时间】:2013-09-11 21:32:49
【问题描述】:

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

示例伪代码:

Set String Array = {"sub1","sub2","sub3"}
for each String str in Array
    call str 'where str is a Sub
next str

我确实知道如何创建一个数组并调用 Subs;我只是不知道如何使用字符串值调用 Sub。

【问题讨论】:

  • 我了解您需要 VBA(将删除 VB.NET 标记)。这段代码(有点)是 VBA,但是是错误的(声明是错误的)。此外,您到底想要什么也不是很清楚。你想打电话给潜艇吗?嗯……现在更清楚了。通过查看 Oliver 提供的链接,我更了解您想要什么 :)
  • 看看 CallByName 函数。正如它的名字所暗示的,它会做你需要的。 ETA 呃,刚刚发现这很可能是 VBA - 如果是这样,我认为这对你不可用
  • 为什么又添加了VB.NET标签?您希望在 VB.NET 中还是在 VBA 中回答这个问题?
  • 不,不是。在 VB.NET 中,您可以使用一些旧的 VB 函数(也存在于 VBA 中),尽管这不是一个值得推荐的过程。你不能反其道而行之;例如:您添加到反射的最后一个标记没有任何意义(这是一个 VB.NET 的名称一个命名空间,而 VBA 甚至没有命名空间!!)

标签: vba


【解决方案1】:

试试这个:

Application.Run (str)

我刚刚通过做类似的事情了解到这一点。您还可以通过执行以下操作将变量传递给该子:

Application.Run (str, "YourValue")

【讨论】:

  • 这就是我要找的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
相关资源
最近更新 更多