Excel VBA-双击工作表中的单元格以在工作簿内的一个工作表上生成过滤数据

时间:2018-11-13 21:36:54

标签: excel vba

我正在创建一个工作簿,该工作簿将为银行客户提供一个临时CRM数据库。

Sheet1被命名为Company

Sheet1上的每一行都有一些字段,用于提供电话,电子邮件和地址之类的详细信息,还需要另一个工作表以包含必要的信息(如联系人,帐户和历史记录)(与客户进行电话和电子邮件联系的日志)

我想做的是在“公司”工作表上创建VBA代码,该代码将带我进入由该公司名称过滤的各个特定工作表上的数据。

例如;如果我双击“公司”表上的联系人姓名,则将带我进入“联系人”表,并仅针对与我双击的联系人的公司相匹配的公司过滤该表。

我是VBA的新手,并从此网站Clicking a hyperlink in Excel to set autofilter on a different sheet获得了代码 线程很旧,所以我认为最好创建一个新线程。

我不断收到“运行时错误'9':下标超出范围”,调试器突出显示了以'Sheet2.ListObjects(ContactTable)开头的行

这是我到目前为止的代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If ActiveCell.Column = 9 Then
    Sheet2.ListObjects(ContactTable).Range.AutoFilter Field:=1, Criteria1:=ActiveCell.Offset(0, -8).Value
    Sheet2.Activate
    End If
End Sub

所有页面上的列1为“公司”标题名称

Sheet1被命名为Company,Sheet2被命名为Contacts

Sheet1上的表名为CompanyTable,Sheet2上的表名为ContactTable

我在所有工作表上都有自动过滤器

任何对我的代码的帮助将不胜感激。如果您在我的工作簿上还需要其他任何数据,请告诉我。

1 个答案:

答案 0 :(得分:0)

Sheet2.ListObjects("ContactTable")-应该可以解决问题。