首页 > 解决方案 > 如何根据活动/选定单元格更改单元格值

问题描述

我在名为Manual的工作表名称中有一个Range A2:A77中的名称列表。每当我选择一个名称时,即从范围中选择一个单元格时,该活动单元格值应该反映在单元格C1中。此外,如果我选择了其他位置,除了给定的工作表或范围之外,宏不应该工作。

我用谷歌搜索了很多,但似乎没有什么符合我的标准,所以我在这里,希望有更好的解决方案。您可能会要求我通过使用数据验证来实现这一点,但为此我必须每次都进行多次点击和滚动工作。所以为了避免我正在寻找 vba 代码以最大限度地减少工作和时间。谢谢你。

标签: excelvba

解决方案


我现在只是在学习 VBA,所以这可能是一些非常糟糕的代码,但这里就可以了。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cells As Range
    Set cells = ActiveSheet.Range("A1:A27")
    If Not (Intersect(Target, cells) Is Nothing) Then
       ActiveSheet.Range("C1").Value = Target.Value
    End If
End Sub

Worksheet_SelectionChange如果工作表中选定的单元格发生更改,则调用InRange我在此处找到的测试:VBA 测试单元格是否在范围内测试单元格是否在定义的范围内,然后设置值。

按照@Vitaliy Prushak 在评论中的建议进行编辑。


推荐阅读