传递参数值以使用Excel中的VBA过滤不同工作表中的表

时间:2014-03-30 23:49:36

标签: excel vba

如果我的数据表值具有例如此值:

Table name = Employees

Column Names = Names, Titles

列的值将包含

"SamT, Manager"

"Nock, Manager"

"John, Entry Level"

"Kris, HR"

所以,如果我在excel spreed表上的Sheet Two上的sql server表中生成了这个表,我该如何创建一个参数来帮助我通过在另一个表(One)中输入值来自动提交该表。参数可以是标题的下拉列表,也可以是带有值的文本框。例如,我在Sheet 1的参数下拉列表中和下一个spreed表中选择“Manager”,其中我有“Employees”表列表,仅显示具有Manager Title的员工。如何在Excel中使用VBA实现这一目标?

感谢,

1 个答案:

答案 0 :(得分:0)

尝试这样的事情,你可以扩展if语句以获得更多参数。

在Sheet1对象上,您可以添加:

private sub Worksheet_Change(ByVal Target as Range)

if target = Range("YourCell") then
    Sheets("Sheet2").ListObjects("YOURTABLENAME").Range.AutoFilter Field:=NUMBEROFCORRESPONDING FIELD, Criteria1:="=" & Range("YourCell").value
end if

end sub

我还没有对此进行过测试,所以希望没有拼写错误。