ОК, я полный нуб VBA, так что извините за мой ужасный код.
У меня есть две таблицы Excel, одна из которых называется «Подрядчики», а другая - «Referring_to_Contractors».
Лист подрядчиков выложен вот так.
Terr ContractorID Первый Последний
1 7 Боб Смит
2 5 Джефф Браун
3 8 Стэн Ли
Лист Referring_to_Contractors имеет те же поля и макет, что и лист «Подрядчики» выше, но также имеет дополнительные столбцы для «Направляющих подрядчиков», поэтому он имеет столбцы «Ref_Contractor_Id», «Ref_First», «Ref_Last» и т. Д.
То, что я пытаюсь сделать, это использовать VBA, чтобы, когда кто-то дважды щелкнул строку на листе «Подрядчики», он принял значение в столбце Contractor_ID, затем посмотрел на листе «Referring_to_Contractors» и отфильтровал все записи в этом листе, которые имеют это значение как Contractor_ID. По сути, это будет отображать реферальную информацию для Contractor_ID, щелкнувшего на первом листе. Я создал именованный диапазон для поля Contractor_ID под названием «PrimaryContractor»
Итак, на первом листе «Подрядчики» у меня есть:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
и ..
Sub Select_Ref_Contractors()
ContractorId = Range("PrimaryContractor").Value
With Sheets("Referring_to_Contractors")
.Visible = True
.Select
End With
ActiveSheet.Range("$B$10:$N$44163).AutoFilter Field: =1, Criteria1:= ContractorID
Application.Goto Range("A1"), True
End Sub
Концептуально кажется, что все должно быть довольно просто, но по какой-то причине я не могу заставить второй лист правильно фильтровать.
Будем весьма благодарны за любые полезные или даже полезные ссылки.