将用户输入作为代码执行

时间:2014-01-19 10:24:48

标签: excel-vba vba excel

我想逐步完成并评估工作表中的用户定义公式(即它们是字符串)。 文本可能看起来像(可以更改语法以使vba代码更容易编写):

Var1('a,1') = 0.1
Var1('a,2') = 0.5
Var2('a') = Var1('a,1') + Var2('a,2')
Var3('a') = SomeFunction(Var2('a'),"SomeArg")
etc.

如果我可以将每一行包裹在像Execute(Line)这样的东西中,那么这似乎很简单,这可能吗?

我唯一能想到的另一种方法是使用字典存储变量,但是我需要编写一些(可能是填充错误的)代码来包装变量名而不是函数名。 / p>

VarDict("Var1('a,1')") = 0.1
VarDict("Var1('a,2')") = 0.5
VarDict("Var2('a')") = VarDict("Var1('a,1')") + VarDict("Var2('a,2')")
VarDict("Var3('a')") = SomeFunction(VarDict("Var2('a')"),"SomeArg")
etc.

1 个答案:

答案 0 :(得分:0)

可能是一个主题,但我建议看看pyspread它是一个电子表格,允许每个单元格成为任何python对象,包括一个完整的python程序 - 如果你没有绑定到Excel那么你会发现很多工作要做。

N.B。 python,pyspread和所有必需的工具,(wxpython用于GUI,numpy用于数字库,gpg用于安全地签署电子表格等),是免费的(包括用于商业用途) ),并将在多个平台上运行,包括Windows,Macintosh和Linux等。