我想编写一个能够自我感知其自身单元格地址的函数。例如,我希望能够在任何单元格中放置一个无参数函数,并且在调用时,该函数将根据其左侧单元格中的值执行操作。
我尝试了以下方法,如果包含该功能的单元格是活动单元格,则该方法效果很好,但一般来说情况并非如此。
Function Test()
Test = Range(Application.ActiveCell.Address).Offset(0,-1)
End Function
我猜这个挑战有一个简单的解决方案,但只有你知道它才会很容易!!!
提前致谢!
(Excel 365)
答案1
如果没有必要,请不要使用 VBA。
=IF(relative_address=some_condition,{result if true},{result if false})
例如,如果我想在 G7 包含“Scooby Dooby Don't”时在 H6 中显示“Spooktacular”,否则不显示任何内容,那么我会这样做:
=IF(G7="Scooby Dooby Don't","Spooktacular","")
此公式可以复制到任何其他单元格,并且它将始终引用左侧一列和下方一行的单元格。发生这种情况是因为地址写为 G7,而不是 $G$7(这会将行和列锁定到该单元格)或 $G7(这会将列锁定到 G)或 G$7(这会将行锁定到 7)。