将vba宏作为字符串运行

时间:2015-02-19 14:47:46

标签: string vba excel-vba ibm-doors excel

我正在尝试运行一个宏,这个宏没有在任何地方定义,而是在字符串中。

例如,我有以下字符串:

Public Sub testMacro()
Dim MC As Range
Set MC = ActiveSheet.Range("A15")
Dim i As Integer

For i = 1 To 10
    MC.Offset(i, 0) = i
Next i

End Sub

我想从另一个程序(Doors DXl)执行存储在该字符串中的代码。我知道你可以使用Application.Run执行一个sub,但是如果宏已经写在Excel文件中,这只能使用宏的名称。 我再说一遍,不会也不会存在于前一个字符串中的任何地方。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用

Eval
  

您可以使用Eval函数来评估结果的表达式   在文本字符串或数值中。

     

您可以构造一个字符串,然后将其传递给Eval函数,就像一样   字符串是一个实际的表达式。 Eval函数评估   字符串表达式并返回其值。例如,Eval(“1 + 1”)   返回2.

     

如果将包含名称的字符串传递给Eval函数   函数,Eval函数返回函数的返回值。   例如,Eval(“Chr $(65)”)返回“A”。

     

<强>评估(stringexpr)

https://msdn.microsoft.com/en-us/library/office/aa172212%28v=office.11%29.aspx