Loop con filter avanzato, nuovi criteri each Loop

Ho questo codice:

Sub omgifthisworks() Sheets("data").Select Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Sheets("log").Range("A1:A4"), Unique:=False Sheets("Data").Select Sheets("Data").Copy After:=Sheets(3) ActiveSheet.Name = Sheets("banks").Range("A2").Value enter code here 

La sua function è abbastanza semplice. È ansible creare un ciclo in cui questo codice crea tanti nuovi fogli di lavoro come ho le celle nella colonna "A" nel mio foglio di lavoro "banche"? È anche ansible avere il loop spostare i criteri di filter sulla colonna a destra e select solo quante cellule ci sono dati?

Il risultato finale che spero di get è il codice che crea molti nuovi fogli di dati con nomi diversi che contengono dati all'interno del quale viene filtrato each volta da nuovi criteri.

Per la prima domanda sul loopssmo, vai qui:

http://www.excel-easy.com/vba/loop.html http://msdn.microsoft.com/en-us/library/eked04a7.aspx

Per il secondo:

 Sheets.Add After:=ActiveSheet ActiveSheet.Name = [name you want] Sheets.Add After: = ActiveSheet Sheets.Add After:=ActiveSheet ActiveSheet.Name = [name you want] 

Ho usato codice come questo per fare qualcosa di simile a quello che stai parlando.

origSh come foglio di lavoro contenente i dati originali da filtrare.

filterSh è un foglio di lavoro contenente i dati per il filter avanzato. La row 1 contiene intestazioni di colonna per filtrare; la row 2 contiene i criteri di dati da filtrare.

La procedura attraversa le colonne di filterSh e filtra i dati in origSh dai criteri specificati, copiando i dati filtrati in nuovi fogli posti alla fine della cartella di lavoro.

 Sub FilterToSheets(origSh As Worksheet, filterSh As Worksheet) Dim filterRng As Range Dim newSh As Worksheet Set newSh = filterSh For Each filterRng In filterSh.UsedRange.Columns Set newSh = ActiveWorkbook.Worksheets.Add(after:=newSh) newSh.Name = filterRng.Cells(2).Text origSh.UsedRange.AdvancedFilter _ Action:=xlFilterCopy, _ criteriarange:=filterRng, _ copytorange:=newSh.Range("A1"), _ unique:=False Next End Sub 

Questo dovrebbe sperare di dare una gamba fino a scrivere qualcosa che si adatta al tuo esempio.