在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]”