在Excel VBA

时间:2017-05-25 07:10:36

标签: excel vba cell

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

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

=H18

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

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

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

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

我单击了菜单上的各种计算按钮,将计算更改为自动,但没有进行计算。

我能做的唯一方法是手动选择每个单元格并按Enter键。

有没有办法计算所有细胞值? 否则,"活跃细胞"表示"按光标选择的单元格"?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

添加一个公式为@Chris Harper建议可行,但是你也可以在单元格中编写公式。

而不是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

答案 1 :(得分:0)

Excel中的计算方法VBA可以进行各种计算。您甚至可以定义一个范围来仅计算一系列特定单元格,如工作表(“Sheet1”)。计算。

是的,ActiveCell始终是Selected Cell。

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