Kód VBA na podmienečné kopírovanie údajov z jedného hárku do druhého

Problém

Potrebujem kód VBA, ktorý dokáže kopírovať údaje z listu 1 (nespracované údaje) do hárku 2, hárku 3 atď. Na základe určitých podmienok.

kolóna --- ------------ B ------------ C ------------ D ------ -E

----------- názov ----- miesto ---- spoločnosť --- krajiny

----------- name1 ---- AB ------- ------- Nokia USA

----------- meno2 ---- CD ------- Sony -------- UK

----------- meno3 ----- EF ------- LG ----------- INDIA

----------- NAME4 ----- AB ------ Sony ------ RUSKO

----------- NAME5 ----- AB ------ Sony ------ NEMECKO

----------- name6 ----- CD ------ Nokia ------ INDIA

----------- name7 ----- CD ------ Ericsson - USA

----------- name8 ----- EF ------ Ericsson ---- RUSKO

----------- name9 ----- GH ------ Lenore ----- UK

----------- name10 --- GH ------- HP --------- INDIA

Riešenie

Môžete použiť nasledujúce kódy

 Sub SplitSheets () Dim DataSht, wsCrit, SplitSht ako pracovný hárok Dim lrUnq, lrData, i Ako dlhé dim FtrVal As String Application.ScreenUpdating = False Set DataSht = Pracovné hárky ("sheet1") 'zmeniť na názov vášho surového hárku údajov lrData = DataSht.Range ("a" & Rows.Count) .End (xlUp) .Row Nastaviť wsCrit = Worksheets.Add DataSht.Range ("B1: l" & lrData) .AdvancedFilter Akcia: = xlFilterCopy, _ CopyToRange: = wsCrit .Range ("A1"), Unique: = True lrUnq = wsCrit.Range ("a" & Rows.Count) .End (xlUp) .Row Pre i = 2 Do lrUnq FtrVal = wsCrit.Range ("A" & i ) .Value Set SplitSht = Worksheets.Add DataSht.Select 'DataSht.ShowAllData ActiveSheet.AutoFilterMode = False ActiveSheet.Range ("A1: Z" & lrData) .AutoFilter Pole: = 2, Kritériá1: = Rozsah FtrVal ("a1") Vyberte rozsah (Výber, Výber.End (xlToRight)) Vyberte rozsah (Výber, Výber.Zadať (xlDown)) Vyberte položku Výber.Objednať Rozdelenie Shift.Select ("A1") Vyberte ActiveSheet.Paste 'Cells.Select Cells .EntireColumn.AutoFit SplitSht.Name = FtrVal Aplikácia.CutCopyMode = False Next i App lication.DisplayAlerts = False wsCrit.Delete Application.DisplayAlerts = True .AutoFilterMode = False End Sub 

Vďaka RWomanizer pre tento tip.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy