在Excel VBA中获取当前单元格周围的相邻单元格值

Ash*_*ane 0 excel vba cell

我想获取相邻的单元格值以在VBA中进行计算。

通常很容易获得当前单元格(例如H19)的左侧单元格,如下所示:

=H18
Run Code Online (Sandbox Code Playgroud)

如果我将此单元格复制到其他单元格,则每个单元格都将更改为适当的单元格编号。

但是在VBA代码中,我不确定是否正确获取左单元格的值。

Public Function LeftCell()
    LeftCell = ActiveCell.Offset(0, -1).Value
End Function
Run Code Online (Sandbox Code Playgroud)

我不确定这是正确的,我测试了将此单元格复制到其他单元格,但是每个结果都不会自动更改。

我单击了菜单上的各种计算按钮,将“计算”更改为“自动”,但是没有任何计算发生。

我唯一可以做的方法是手动选择每个单元格,然后按Enter。

有什么方法可以计算所有像元值吗?否则,“活动单元格”是指“按光标选择的单元格”?

感谢您的帮助。

Dar*_*ook 5

按照@Chris Harper的建议添加一个公式将起作用,但是您也可以只在单元格中编写该公式。

而不是ActiveCell,您需要调用公式的单元格。

Public Function LeftCell()
    LeftCell = Application.Caller.Offset(, -1).Value
End Function
Run Code Online (Sandbox Code Playgroud)

编辑:如果您希望单元格在更改值时进行更新,则将其添加Application.Volatile True为函数的第一行。

https://msdn.microsoft.com/zh-CN/library/office/ff193687.aspx