VBA代码更正

时间:2016-02-23 11:18:19

标签: vba

我第一次使用VBA。我从使用Runga Kutta Method的非常基本的代码开始。我无法运行它。我能知道我哪里出错吗?你能为这种微分方程求解器发布一些解决方案吗?

scaled.fn <- function(dt, x, y, i) {
    # dt is data.table
    # x is dependent column (col name as str) 
    # y are predictor columns (col names as vector of str)
    # i is name of column to multiply, as str

    dep = paste(y, collapse = " + ")
    my.formula = paste(x, " ~ ", dep, sep = "")

    m = lm(formula = my.formula, data = dt)

    # column names in dt are named in y
    return(dt[, get(i) * coef(m)[i]])
}

1 个答案:

答案 0 :(得分:1)

您需要执行RK程序并为其指定x,y和dx的起始值 要从VBE(Visual Basic编辑器)中执行此操作,请打开立即窗口。如果它不可见,请按Ctrl + G,它应出现在VBE的底部。

在立即窗口中键入类似RK 1, 3, 2的内容,结果将显示在活动单元格右侧的两列中,并占用6行。

如果您希望按下按钮执行该过程,或者更新某个值时,您需要为此添加额外的代码。

修改
刚刚注意到这些行 - RK = y + ((K1 + 2 * (K2 + K3 + K4)) / 6)ynew = RK(x, y, dx) RK过程不会返回值,也不能将其设置为值 此链接可能有助于解释它:http://what-when-how.com/excel-vba/vba-sub-and-function-procedures/