Een VBA-code om gegevens van het ene blad naar het andere te kopiëren
Kwestie
Ik heb een VBA-code nodig die gegevens van sheet1 (onbewerkte gegevens) naar sheet 2, sheet3 enzovoort kan kopiëren ... op basis van een bepaalde voorwaarde.
kolom A --- B ------------ ------------ ------------ C D ------ -E
----------- naam ----- plaats ---- bedrijf --- land
----------- name1 ---- AB ------- Nokia ------- USA
----------- name2 ---- CD ------- Sony -------- UK
----------- NAME3 ----- EF ------- LG ----------- INDIA
----------- NAME4 ----- AB ------ Sony ------ RUSLAND
----------- name5 ----- AB ------ Sony ------ DUITSLAND
----------- name6 ----- CD ------ Nokia ------ INDIA
----------- naam7 ----- CD ------ Ericsson - USA
----------- name8 ----- EF ------ Ericsson ---- RUSLAND
----------- name9 ----- GH ------ Lenore ----- UK
----------- name10 --- GH ------- HP --------- INDIA
Oplossing
U kunt de volgende codes gebruiken
Sub SplitSheets () Dim DataSht, wsCrit, SplitSht As werkblad Dimension lrUnq, lrData, i As Long Dim FtrVal As String Application.ScreenUpdating = False Set DataSht = Werkbladen ("sheet1") 'verander het in de naam van uw onbewerkte data sheet lrData = DataSht.Range ("a" & Rows.Count). End (xlUp). Row Stel wsCrit = Worksheets in. Voeg DataSht.Range toe ("B1: l" & lrData) .AdvancedFilter Action: = xlFilterCopy, _ CopyToRange: = wsCrit .Range ("A1"), Unique: = True lrUnq = wsCrit.Range ("a" & Rows.Count). End (xlUp). Row For i = 2 To lrUnq FtrVal = wsCrit.Range ("A" & i ). Waarde Stel SplitSht = Worksheets in. Voeg DataSht toe.Selecteer 'DataSht.ShowAllData ActiveSheet.AutoFilterMode = False ActiveSheet.Range ("A1: Z" & lrData) .AutoFilter Field: = 2, Criteria1: = FtrVal Range ("a1") . Selecteer Bereik (Selectie, Selectie.Einde (xlToRight)) Selecteer Bereik (Selectie, Selectie.Einde (xlDown)) Selecteer Selectie.Kopieer SplitSht.Selecteer Bereik ("A1"). Selecteer ActiveSheet.Paste 'Cellen.Selecteer Cellen .EntireColumn.AutoFit SplitSht.Name = FtrVal Application.CutCopyMode = False Volgende i-app lication.DisplayAlerts = False wsCrit.Delete Application.DisplayAlerts = True .AutoFilterMode = False End Sub
Bedankt aan RWomanizer voor deze tip.