我想获取相邻的单元格值以便在VBA中进行计算。
通常像这样很容易得到当前单元格的左侧单元格(例如H19):
=H18
如果我将此单元格复制到其他单元格,则每个单元格都会更改为适当的单元格编号。
但在VBA代码中,我不确定我是否正确获取左侧单元格的值。
Public Function LeftCell()
LeftCell = ActiveCell.Offset(0, -1).Value
End Function
我不确定这是否正确,我测试过将此单元格复制到其他单元格,但每个结果都不会自动更改。
我单击了菜单上的各种计算按钮,将计算更改为自动,但没有进行计算。
我能做的唯一方法是手动选择每个单元格并按Enter键。
有没有办法计算所有细胞值? 否则,"活跃细胞"表示"按光标选择的单元格"?
提前感谢您的帮助。
答案 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]”