这里是新的 VBA 用户,工程师而不是程序员。感谢您的耐心。确实花了几个小时在帮助和在线上试图找到这个答案。找到了一些答案,但它们是针对 php.ini 的。使用 MS Office 家庭和学生版 2007。
我有一个包含 8 个方程的列表。我让用户输入他们想要评估的方程的编号,我称该编号为index。有没有办法在定义索引时将索引放入函数名中?如:
Function PlotFun[index]= some f(x)
或者是否可以使用子程序中的索引重新定义函数?如:
If index=1 then PlotFun=PlotFun[index] 'so PlotFun would equal PlotFun1
我想我在帮助中读到必须在函数例程中定义一个函数,所以这个可能不可行。
或者是否可以从excel中的单元格中读取函数?我尝试使用
Function PlotFun=Worksheets(1).Range("BC6")
其中 BC6 包含“24 - 50 * x + 35 * x ^ 2 - 10 * x ^ 3 + x * 4”,这是 x 函数的正确语法,因为它是从我的 PlotFun1 例程中复制的。但我没有正确的语法。我得到编译错误:预期:语句结束,就在等号处。
我也被提到了 lamda 函数,但同样,我得到了 Expected: End of Statement 错误。
Sub Bisection()
Dim index
Call FuncIndex 'sets the index number for which equation to use for analysis
If index = 1 Then
Dim PlotFun=Function(x) x ^ 3 - 6 * x ^ 2 + 11 * x - 6
If index = 2 Then
Dim PlotFun=Function(x) 24 - 50 * x + 35 * x ^ 2 - 10 * x ^ 3 + x * 4
Do 'my calculations using PlotFun
Loop 'for specified error or iterations
End Sub
我需要在许多子例程中的几个地方使用PlotFun或PlotFun1 。我不想为每个 f(x) 编写/复制代码。也许有比我想象的更好的方法来做到这一点?我不能使用数组,因为方程并不都是多项式。
谢谢!