我正在尝试运行一个宏,这个宏没有在任何地方定义,而是在字符串中。
例如,我有以下字符串:
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文件中,这只能使用宏的名称。 我再说一遍,不会也不会存在于前一个字符串中的任何地方。
答案 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