如何制作动态依赖的excel VBA组合框?

时间:2014-05-02 11:57:25

标签: excel vba combobox

我有三个组合框。 一个用于州,一个用于区,一个用于城市。

到目前为止,我已经设法使用一系列唯一的州名来填充我的第一个组合框。

在第一个组合框中挑选一个状态时需要一个子程序,该组合框选择相应的区域并选择第一个区域(默认情况下),类似地,第一个城市在与第一个区域相对应的第三个组合框中被选中(默认情况下)。

当在第二个组合框中挑选一个区域时,我需要一个子区域,该区域选择相应的城市并选择第一个组合(默认情况下)。

然后,用户应该能够选择一个城市并查看与该城市相关的数据。

如何制作这些子程序?

注意:

"States"是我的状态列表,带有重复。

"uniqueStates"是第一个Combobox的名称。

"districList"是第二个组合框的名称。 "cityList"是第三个组合框的名称。

Function UniqueList()
  'Populate control with


  'unique list.


  Range("States").AdvancedFilter Action:=xlFilterCopy, _
  CopyToRange:=Range("uniqueStates"), Unique:=True


  'Set combo control's Row Source property.


  Range("uniqueStates").Activate


  UserForm1.uniqueStateList.RowSource = Selection.CurrentRegion.Address


  'Display user form.


  UserForm1.Show


  Selection.CurrentRegion.Clear


End Function

此外,我无法弄清楚为什么第一个comboBox填充了第一个州名两次。其余条目是唯一的,只是第一个是重复。

1 个答案:

答案 0 :(得分:0)

它是一个Bug。如果您尝试直接通过Excel制作,则错误仍然存​​在...
添加:

Range("uniqueStates").RemoveDuplicates Columns:=1, Header:=xlNo

绕过错误......