我在工作簿的不同工作表上编写了不同的程序。我想根据工作表中的特定单元格值调用特定过程。
我尝试定义一个变量
示例:
假设,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
MAIN()
将调用您在 中放置名称的宏A1 .
关于vba - 如何根据VBA中的单元格值调用过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51337801/