Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is it possible to use non-contiguous ranges with the vba code for advanced
filters? I can not get the example code to work. Example of code: Sub TestCode() On Error GoTo Err_Text Dim oWB As String Dim oJoinNewRng01 As Range oWB = Application.ActiveWorkbook.Name Set oJoinNewRng01 = Union(Workbooks(oWB).Sheets("Sheet1").Range("A10:A 14"), Range("E10:G14")) oJoinNewRng01.Select oJoinNewRng01.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Workbooks(oWB).Sheets("Sheet1").Ran ge("Criteria"), _ CopyToRange:=Workbooks(oWB).Sheets("Sheet1").Range ("I10:L10"), _ Unique:=False Exit_Text: Exit Sub Err_Text: MsgBox Err.Number & " - " & Err.Description Resume Exit_Text End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
why not just do
A10:G14 then after the copy delete the columns you don't want. or try working with the whole range, but hide the columns B:D (untested) but no, I believe it must be a contiguous range -- Regards, Tom Ogilvy "John" wrote: Is it possible to use non-contiguous ranges with the vba code for advanced filters? I can not get the example code to work. Example of code: Sub TestCode() On Error GoTo Err_Text Dim oWB As String Dim oJoinNewRng01 As Range oWB = Application.ActiveWorkbook.Name Set oJoinNewRng01 = Union(Workbooks(oWB).Sheets("Sheet1").Range("A10:A 14"), Range("E10:G14")) oJoinNewRng01.Select oJoinNewRng01.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Workbooks(oWB).Sheets("Sheet1").Ran ge("Criteria"), _ CopyToRange:=Workbooks(oWB).Sheets("Sheet1").Range ("I10:L10"), _ Unique:=False Exit_Text: Exit Sub Err_Text: MsgBox Err.Number & " - " & Err.Description Resume Exit_Text End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() John wrote: Is it possible to use non-contiguous ranges with the vba code for advanced filters? Try this:- Sub Split_Areas() Application.ScreenUpdating = False Call SetNamedRange ' Creates a range called "Database", works for any size Dim ws1 As Worksheet Dim wsNew As Worksheet Dim rng As Range Dim r As Integer Dim c As Range Set ws1 = Sheets("Data") 'Change this to suit your spreadsheet Set rng = Range("Database") Dim i As Integer 'extract a list of Areas, Columns A:A is where you non-contiguos range is 'Using BL & BM here as it is sufficiently away from your data ws1.Columns("A:A").AdvancedFilter _ Action:=xlFilterCopy, _ CopyToRange:=Range("BL1"), Unique:=True r = Cells(Rows.Count, "BL").End(xlUp).Row 'set up Criteria Area If Range("A1").HasFormula = True Then Range("A1").Formula.Copy Destination:=Range("BM1") Else Range("A1").Copy Destination:=Range("BM1") End If For Each c In Range("BL2:BL" & r) 'add the area name to the criteria area If ws1.Range("BM2").HasFormula Then ws1.Range("BM2").Formula = c.Formula Else ws1.Range("BM2").Value = c.Value End If 'add new sheet and run advanced filter Set wsNew = Sheets.Add wsNew.Move After:=Worksheets(Worksheets.Count) wsNew.NAME = c.Value rng.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("Data").Range("BM1:BM2"), _ CopyToRange:=wsNew.Range("A1"), _ Unique:=False Call Auto_Fit Next ws1.Select ws1.Columns("BL:BM").Delete Application.DisplayAlerts = False ws1.Visible = xlSheetHidden Application.DisplayAlerts = True Rows("1:1").Select Selection.Font.Bold = True Call Auto_Fit 'Select "Whichever sheet you want to be selected first" Sheet Sheets("Whichever sheet you want to be selected first").Select Application.ScreenUpdating = True End Sub ---------------------------------------------------------------------- ' This sub courtesy of Deborah Dalgleish Public Sub SetNamedRange() ActiveWorkbook.Names.Add NAME:="Database", _ RefersTo:=Worksheets("Data").UsedRange End Sub ---------------------------------------------------------------------- |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Advanced Filter - Named Ranges | Excel Worksheet Functions | |||
advanced filter dialog box, "List Range" list two ranges? | Excel Worksheet Functions | |||
Advanced filter: criteria in non-adjacent ranges? | Excel Programming | |||
Advanced filter in VBA - criteria in non-adjacent ranges | Excel Programming | |||
Date ranges and advanced filter | Excel Programming |