一键式基于下拉列表的单元格的Excel宏

时间:2018-11-12 12:04:36

标签: excel vba excel-vba

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

1 个答案:

答案 0 :(得分:0)

将数据验证添加到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