0

我正在尝试运行一个未在任何地方定义但在字符串中定义的宏。

例如我有以下字符串:

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 执行子程序,但这仅在宏已写入 Excel 文件时才使用宏的名称。我重复一遍,这个 sub不存在,也不会存在于前一个字符串中。

4

1 回答 1

1

您可以尝试使用

Eval

您可以使用 Eval 函数计算产生文本字符串或数值的表达式。

您可以构造一个字符串,然后将其传递给 Eval 函数,就好像该字符串是一个实际的表达式一样。Eval 函数计算字符串表达式并返回它的值。例如,Eval("1 + 1") 返回 2。

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

评估(字符串表达式)

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

于 2015-02-19T14:52:55.333 回答