使用变量作为宏的名称

时间:2018-01-09 01:59:26

标签: vba excel-vba excel

这可能相当容易"不,你不能"#34;回答。但是,如果你们中的任何人知道如何使这项工作,我会非常感激。

我有一个名为" DES"另一个名为" FA"。当我将一个单元格改为" DES"或" FA"我想让它运行" DES"或者" FA"宏。我不知道如何使用一系列if / else逻辑来确定要运行的宏。我宁愿拥有它,所以Go_to_macro()函数将输入变量并运行该函数。这样做的原因是我最终会有几十个我希望以这种方式运行的宏。

以下示例代码:"调用命令"是有问题的地方。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("command_des").Value <> Sheets("Back End").Range("command_be").Value Then
    Dim command, number
    command = Range("command_des").Value
    ticker = Range("number_des").Value
    Call Go_to_macro(command, number)
    Else
End If

End Sub

//////////////////////////////////////////////////////////////////////////

Public Function Go_to_macro(command, number)

Range("command_be").Value = command
Range("command_" & command).Value = Range("command_be").Value
If Range("number_" & command).Value <> Range("number_be").Value Then
    Call command
    Else
End If

End Function

//////////////////////////////////////////////////////////////////////////

Sub DES()

Cells(1,1).Value = "Hello World!"

End Sub

/////////////////////////////////////////////////////////////////////////

Sub FA()

Cells(1,1).Value = "Goodbye World..."

End Sub

/////////////////////////////////////////////////////////////////////////

关于解决方案的想法?

最后我应该得到&#34; Hello World&#34;在单元格A1,如果我写&#34; DES&#34;进入命名范围或'再见世界......&#34;在单元格A1,如果我写&#34; FA&#34;进入相同的命名范围。这样你就可以清楚了解产出。

1 个答案:

答案 0 :(得分:2)

您可以使用

Application.Run command

(仅供参考,Call关键字已过时,不应使用 而不是

Call Go_to_macro(command, number)

使用

Go_to_macro command, number