Данные автофильтрации в двух столбцах - PullRequest
1 голос
/ 10 июля 2020

У меня данные в двух столбцах. Один столбец - это состояния, а другой - даты.

Я хочу отфильтровать одно состояние и три месяца.

Когда я применяю этот код, все данные исчезают. Кажется, что все в обоих этих фильтрах отменяют выбор.

месяцев - это список ArrayList.

Sheets("The Data (2)").Select
ActiveSheet.Range("$A:$T").AutoFilter Field:=6, Criteria1:=stateName, Operator:=xlFilterValues
Set months = getMonths(Year, Quarter)
ActiveSheet.Range("$A:$T").AutoFilter Field:=17, Criteria1:=Array(months.Item(0), months.Item(1), months.Item(2)), Operator:=xlFilterValues
Range("$A$1:$T$1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("State Rate Planning Template.xlsm").Activate
Sheets(3).Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select

1 Ответ

0 голосов
/ 10 июля 2020

Соответствует ли это вашим потребностям. В вопросе было небольшое предположение, поэтому, если нет, не стесняйтесь уточнить ниже.

Sub untested()
Dim wb As Workbook: Set wb = Workbook(ThisWorkbook.Name)
Dim ws As Worksheet: Set ws = wb.Worksheets("The data (2)")
Dim months As Integer

Set months = getMonths(Year, Quarter)

With ws
  .Range("$A:$T").AutoFilter Field:=6, Criteria1:=stateName, Operator:=xlFilterValues
  .Range("$A:$T").AutoFilter Field:=17, Criteria1:=Array(months.Item(0), months.Item(1), months.Item(2)), Operator:=xlFilterValues
  .Range(Selection, Selection.End(xlDown)).Copy Destination:=Workbooks("State Rate Planning Template.xlsm").Worksheets(3).Range("A1")
End With

Workbooks("State Rate Planning Template.xlsm").Worksheets(3).Range("A1").Select

End Sub
...