sheet1是数据源表
  数据结构如下:
   序号 名称 父节点
320001 江苏 0
320002 山东 0
320003 上海 0
320004 江西 0
320005 北京 0
320006 南京 320001
320007 苏州 320001
320008 常州 320001
320009 镇江 320001
320010 无锡 320001
320011 济南 320002
320012 浦东 320003
320013 海淀区 320006
320014 吴江 320007

sheet2表是呈现表:
  省份 城市 区县注:城市下拉项根据省份获取,区县下拉项根据城市获取;要在不改变数据源结构的情况下实现。

解决方案 »

  1.   

    采用的是:
    控件ComboBox来实现下拉列表,并通过比对,并进行赋值。样例代码如下
    Private Sub ComboBox1_GotFocus()
      With Sheets("数据库")
               ComboBox1.Clear
               ComboBox2.Clear
                Dim x As Long
                For x = 2 To .Range("C" & Rows.Count).End(xlUp).Row
                If .Cells(x, 3).Value = "0" Then
                 ComboBox1.AddItem .Cells(x, 1)
                 ComboBox2.AddItem .Cells(x, 1) & ":" & .Cells(x, 2)
                 .Range("C10").AddItem .Cells(x, 1)
                End If
               Next
       End With
     
    End Sub