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

我想获得在VBA中计算的相邻单元格值。

通常像这样很容易获得当前单元格的左侧单元格(例如H19):

=H18 

如果我将这个单元格复制到其他单元格,它们中的每一个都被更改为适当的单元格号码。

但是在VBA代码中,我不确定我是否有权获得左侧单元格的值。

 Public Function LeftCell() LeftCell = ActiveCell.Offset(0, -1).Value End Function 

我不确定这是否正确,我testing复制这个单元格到其他单元格,但每个结果不会自动更改。

我点击菜单上的各种校正button,将计算方式更改为自动,但不计算。

我能做的唯一方法是手动select每个单元格,然后按回车。

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

感谢您的帮助提前。

像@Chris Harperbuild议的那样添加一个公式就行了,但是你也可以直接在单元格中写公式。

您需要的是称为公式的单元,而不是ActiveCell。

 Public Function LeftCell() LeftCell = Application.Caller.Offset(, -1).Value End Function 

编辑:如果你希望单元格更新,每当你改变的值添加Application.Volatile True作为你的函数的第一行。

https://msdn.microsoft.com/en-us/library/office/ff193687.aspx

在Excel VBA中计算方法做各种计算。 你甚至可以定义一个范围来计算只有一些特定的单元格,如工作表(“Sheet1”),计算。

是的,ActiveCell始终是选定的单元格。

作为通过偏移设置值的替代方法,可以使用ActiveCell.FormulaR1C1 =“= RC [-1]”