我可以在excel中创建简单的依赖下拉列表,如下面的屏幕截图所示。
http://s14.postimg.org/sip3g4nc1/dropdown1.jpg 如果我在单元格E1中选择TeamA,TeamA的所有三个成员都会显示在单元格F1的下拉列表中
现在我想实现以下场景 -
第一个成员将在F1中显示,并立即选择E1中的Team。目前无论我在单元格E1中选择什么,F1都保持不变,直到我通过单击F1的下拉列表更改值。
将有另外两个单元格来保存G1和H1中的成员。因此,三个成员将有三个单元格。当我在E1中选择Team时,将立即使用相应的成员更新三个单元格(F1,G1和H1)。每个成员单元格都有下拉列表,其中包含所有成员以便稍后选择所需成员 http://s16.postimg.org/zb2pja4hh/dropdown2.jpg
答案 0 :(得分:1)
假设您使用了间接引用(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
扩展名保存文件。