Microsoft Excel
Оценка 4.6

Microsoft Excel

Оценка 4.6
doc
14.05.2020
Microsoft Excel
92. Microsoft Excel.doc

Microsoft Excel

Автофильтр и расширенный фильтр

как пример, предположим, что нужно разбить таблицу по отдельным листам, используя в качестве критерия уникальные значения из одного столбца

собственно вот код примера:

view plainprint?

1.        Sub ertert112()  

2.        Dim s$, r  

3.        Application.ScreenUpdating = False  

4.        With Sheets("Sheet4").Range("A1").CurrentRegion  

5.         .Parent.AutoFilterMode = False  

6.         For Each r In .Offset(1).Resize(.Rows.Count - 1).Columns(4).Value  

7.         If InStr(s, r) = 0 Then  

8.         If Not Evaluate("ISREF('" & r & "'!A1)"Then  

9.         Sheets.Add(after:=Sheets(Sheets.Count)).Name = r  

10.      Else  

11.      Sheets(r).UsedRange.ClearContents  

12.      End If  

13.      .AutoFilter 4, r  

14.      .Copy Sheets(r).Range("A1")  

15.      s = s & r  

16.      End If  

17.      Next  

18.      .AutoFilter  

19.     End With: Application.ScreenUpdating = True  

20.     End Sub  

а это отрывки-заготовки:

view plainprint?

1.        Dim s As String, r As Range ' массив в качестве критерия для автофильтра  

2.        With New Collection  

3.         On Error Resume Next  

4.         For Each r In ActiveSheet.ListObjects("Table1").DataBodyRange.Columns(2).SpecialCells(12)  

5.         If IsEmpty(.Item(r)) Then .Add r, r: s = s & "~" & r  

6.         Next  

7.        End WithOn Error GoTo 0  

8.        ActiveSheet.ListObjects("Table2").Range.AutoFilter 2, Split(Mid(s, 2), "~"), 7  

view plainprint?

1.        Dim lo As ListObject: Set lo = ActiveSheet.ListObjects(1)  

2.        lo.Range.AutoFilter ' разрешить/отменить автофильтр  

3.        'ActiveSheet.AutoFilterMode игнорирует фильтры в Таблицах (ListObject), поэтому:  

4.        MsgBox lo.ShowAutoFilter 'есть ли автофильтр в Таблице  

5.        lo.Range.AutoFilter Field:=2, Criteria1:="B"  

view plainprint?

1.        'отобразить все данные, если применен фильтр (FilterMode), если на листе вообще есть автофильтр (AutoFilterMode)  

2.        With ActiveSheet  

3.         If .AutoFilterMode Then If .FilterMode Then .ShowAllData  

4.        End With  

5.          

6.        With ActiveSheet 'или сразу так  

7.         If .FilterMode Then .ShowAllData  

8.        End With  

 


Скачано с www.znanio.ru

Microsoft Excel Автофильтр и расширенный фильтр как пример, предположим, что нужно разбить таблицу по отдельным листам, используя в качестве критерия уникальные значения из одного столбца…

Microsoft Excel Автофильтр и расширенный фильтр как пример, предположим, что нужно разбить таблицу по отдельным листам, используя в качестве критерия уникальные значения из одного столбца…
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
14.05.2020