如何使用VBA从Excel中的公式获取单元格值?

Sim*_*mon 4 vba excel-2003

我在工作表中的一系列单元格中有一个公式,可以计算出数值.如何从传递到函数的范围中获取VBA中的数值?

假设工作表中A列的前10行包含rand(),我将其作为参数传递给我的函数...

public Function X(data as Range) as double

    for c in data.Cells
        c.Value    'This is always Empty
        c.Value2   'This is always Empty
        c.Formula  'This contains RAND()
    next

end Function
Run Code Online (Sandbox Code Playgroud)

我从一个单元格中调用该函数...

=X(a1:a10)
Run Code Online (Sandbox Code Playgroud)

如何获得单元格值,例如0.62933645?

Excel 2003,VB6

Ric*_*gan 6

从VBA(Excel 2003)运行时,以下代码适用于我:

Public Function X(data As Range) As Double

For Each c In data.Cells
    a = c.Value     'This works
    b = c.Value2    'This works too (same value)
    f = c.Formula   'This contains =RAND()
Next

End Function
Run Code Online (Sandbox Code Playgroud)

a和b是相同的,并且与我传入的相同(这是一系列带有Rand()的单元格).我不确定这里还有什么.

啊哈!你需要设置X,不是吗?我不确定你期望这个函数到底是什么,但是你需要将X(函数的名称)设置为你想要返回的值.添加此行:

X = a
Run Code Online (Sandbox Code Playgroud)