vba - 如何根据VBA中的单元格值调用过程

标签 vba excel

我在工作簿的不同工作表上编写了不同的程序。我想根据工作表中的特定单元格值调用特定过程。

我尝试定义一个变量

示例:

假设,Worksheet.Range("C6")=RC

所以我定义了一个变量'i'

i= thisworkbook.sheets("Sheet1").range("C6").value

Call i

但我在这方面遇到了错误。

值范围 C6 根据内容而变化,它共有 32 个内容的数组,所以我编写了 32 个不同的程序。我只需要根据'C6'的值调用每个过程。

它总共有 32 个程序,我可以用 IF 条件编写,但它太笨重了,所以我正在尝试一些简单的方法。

最佳答案

使用Application.Run而不是 Call :

假设我们将宏的名称放入 A1 , 然后:

Sub MAIN()
    Dim WhichMac As String
    WhichMac = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
    Application.Run WhichMac
End Sub

Sub MyMac()
    MsgBox "Hello World"
End Sub

enter image description here
MAIN()将调用您在 中放置名称的宏A1 .

关于vba - 如何根据VBA中的单元格值调用过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51337801/

相关文章:

ms-access - VBA类模块: Runtime error 438 Object doesn't support this property or method

excel - 将字符串中的数字放在括号中

oop - 在 VBA 中实现我自己的接口(interface) - 错误 : Object module needs to implement 'x' for interface 'y'

vba - 加快删除重复项

excel - 自定义功能区选项卡下的宏按钮尝试打开旧的 Excel 文件

vba - 使用 VBA 进行网页抓取

python - 从Dataframe对象过滤字符串和整数值-python

excel - 我用条目将特定范围限制到最后一行有什么错误?

excel - 在工作表之间设置变量列

excel - 在 VBA 中引用行名称