Макрос для фильтрации таблицы данных по нескольким критериям на основе определенного значения ячейки - PullRequest
0 голосов
/ 07 июня 2018

Я попытался записать макрос для фильтрации таблицы данных на основе значений 2 ячеек.Это сработало только в первый раз, потому что VBA записал значение ячейки вместо ссылки на ячейку.Я не смог выяснить, как изменить код, чтобы сделать следующее:

  1. Изменить выбор фильтра при изменении значения ячейки
  2. изменить выбор фильтра без перехода клист, содержащий таблицу данных.

Рабочий лист, на котором расположены ссылочные ячейки, называется «Оценщик затрат», а рабочий лист с таблицей данных - «AR_BOM»

Имя таблицы - «BOM_Table»

Вот код, который был записан:

Sub Filter_AR_BOM()
'
' Filter_AR_BOM Macro
'

'
    Range("E25").Select
    Selection.Copy
    Sheets("AR_BOM").Select
    ActiveSheet.ListObjects("BOM_Table").Range.AutoFilter Field:=4, Criteria1:= _
        "Line 11"
    Sheets("Cost Estimator").Select
    Range("J10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("AR_BOM").Select
    ActiveSheet.ListObjects("BOM_Table").Range.AutoFilter Field:=13, Criteria1 _
        :="12197118"
    Sheets("Cost Estimator").Select
End Sub

Любая помощь с благодарностью.Я почти два дня пробовал разные вещи на форумах и, похоже, ничего не добился.Я начинающий макро / vba, поэтому я знаю, что это ничего не поможет.

1 Ответ

0 голосов
/ 07 июня 2018

Вот, по крайней мере, начало.Код должен идти в модуле калькулятора стоимости

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$E$25" Or Target.Address = "$J$10" Then
    Sheets("AR_BOM").ListObjects("BOM_Table").Range.AutoFilter Field:=4, Criteria1:=Range("E25").value
    Sheets("AR_BOM").ListObjects("BOM_Table").Range.AutoFilter Field:=13, Criteria1:=Range("J10").value
End If

End Sub
...