Excel VBA - 级联下拉菜单清除/重置

时间:2016-03-16 11:39:52

标签: excel vba drop-down-menu combobox cascadingdropdown

这是我的第一篇文章,我已经退出了。还有一点压力,因为我需要很快找到解决我工作问题的方法......但我们会到达那里。

所以,我提出了一个两页的excel文件。一个("数据库")有一个大约一百行我们项目的表格,在列中,是#34; region"和"办公室"。该地区是项目所在地,办事处是哪个外地办事处管理该地区内的项目。

第二个工作表(" dashboard2")有一组使用复杂公式的指标。两个下拉菜单(我曾经将它们称为表单控件组合框,但似乎Excel正在命名它们"下拉1和#34;以及"下拉2")允许用户选择一个地区和一个办公室。第二个下拉列表已根据第一个下拉菜单的值从命名范围中进行选择。哪个好。

现在,您可能已经看到了我的目标:完全没有VBA,一切正常,除了"办公室"我改变区域时不会重置。更具体地说,如果我选择该区域的第一个区域和第四个办公室,然后更改为第二个区域,我将获得该区域第四个办公室的数据,而不是消隐第二个下拉菜单。

我对VBA并不熟悉,而且我已经尽力做到没有它的一切。然而,在这种情况下感觉是必须的,我被卡住了。 使用各种网站和教程,我有以下代码:

Private Sub DropDown1_Change()

myVal = ThisWorkbook.Sheets("Dashboard2").DropDown1.Value

'loop thru col G of Database
lr = ThisWorkbook.Sheets("Database").Cells(Rows.Count, 1).End(xlUp).Row

'clear combobox 2
ThisWorkbook.Sheets("Dashboard2").DropDown2.Clear

'loop thru
For x = 10 To lr
    If myVal = ThisWorkbook.Sheets("Database").Cells(x, 8) Then
        'add to combobox
        ThisWorkbook.Sheets("Dashboard2").DropDown2.AddItem ThisWorkbook.Sheets("Database").Cells(x, 7)
    End If
Next x

" 7"和" 8"请参阅我的第一张桌子的G和H栏,其中"办公室"和"地区"信息位于。 " for"循环从10开始,因为它是第一个项目的行。如果我没有弄错的话,上面的代码会在第一个下拉菜单中更改时清除并重新填充第二个下拉菜单。

但是,我在第二个下拉菜单中得不到任何信息,或者我得到运行时错误438"对象不支持此属性或方法"而且我不知道如何处理它。附带问题包括:"如果VBA代码位于" microsoft excel对象的表单元素中,那么#34;类别或在"模块"类别&#34?; "我的下拉框似乎被Excel称为"下拉1"这是正常的。在excel文档和" dropdown1"在VBA编辑器中? (我已经尝试过使用Set d1 = ThisWorkbook.Sheets(" Dashboard2").DropDowns(" Drop Down 1")但无济于事。

那个,伙计们,这就是我所拥有的一切。我很乐意接受建议。非常感谢提前!

0 个答案:

没有答案