首页 > 解决方案 > Excel宏,用于基于下拉列表一键填写单元格

问题描述

我想用鼠标在单元格 A1:A5 中单击一次,用下拉列表中的值填充一系列单元格,比如说 A1:A5。我希望它工作的方式是首先从下拉列表中选择我想要的值,然后单击范围 A1:A5 中的任何单元格,并且只有选定的单元格将值更改为下拉列表中的值. 而且,当我从下拉列表中更改值时,先前通过单击它们填充的单元格不会自动更改为下拉列表中的新值。单击后,它们将保持该值,直到单击另一个选定值。

标签: excelvba

解决方案


将数据验证添加到 B1,在“允许:”下选择“列表”,在“来源:”下选择您的值,例如:Value1、Value2、Value3... .. 或者当然是一个范围..

将以下内容粘贴到工作表代码中(例如 Sheet1(sheet1))

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A5")) Is Nothing Then
        Selection.Value = Range("B1").Value
        Range("B1").Value = ""
    End If
End Sub

推荐阅读