VBA kodas, leidžiantis kopijuoti duomenis iš vieno lapo į kitą
![](http://img.brin-designs.com/img/games/921/vba-code-conditionally-copy-data-from-one-sheet-another.png)
Problema
Man reikia VBA kodo, kuris gali nukopijuoti duomenis iš lapo1 (neapdorotų duomenų) į 2, 3 lapus ir pan.
stulpelis --- A ------------ B ------------ C ------------ D ------ -E
----------- pavadinimas ----- vieta ---- kompanija --- šalis
----------- name1 ---- AB ------- Nokia ------- JAV
----------- name2 ---- CD ------- Sony -------- UK
----------- name3 ----- EF ------- LG ----------- INDIJA
----------- name4 ----- AB ------ Sony ------ RUSIJA
----------- name5 ----- AB ------ Sony ------ VOKIETIJA
----------- name6 ----- CD ------ Nokia ------ INDIJA
----------- vardas7 ----- CD ------ Ericsson - JAV
----------- name8 ----- EF ------ Ericsson ---- RUSIJA
----------- vardas9 ----- GH ------ Lenore ----- UK
----------- name10 --- GH ------- HP --------- INDIA
Sprendimas
Galite naudoti šiuos kodus
„Sub SplitSheets“ („Dim Split“) („Dim DataSheets“) „Dim DataSht“, „wsCrit“, „SplitSht“ kaip užduoties lapas „Dim lrUnq“, „lrData“, „i“ kaip ilgas „Dim“ FtrVal kaip eilutės taikymas. = „DataSht.Range“ („a“ ir „eilutės“). „End“ (xlUp). „Rinkų rinkimas“ wsCrit = darbalapiai.Pridėkite „DataSht.Range“ („B1: l“ ir „lrData“). .Range ("A1"), Unikalus: = Tiesa lrUnq = wsCrit.Range ("a" ir eilutės.Kaina) .Pasirinkimas (xlUp) .Užsakymas i = 2 Jei norite ištrinti FtrVal = wsCrit.Range ("A" ir i ) .Value Set SplitSht = Worksheets.Add DataSht.Select 'DataSht.ShowAllData ActiveSheet.AutoFilterMode = False ActiveSheet.Range ("A1: Z" & lrData) .Automatinis filtras laukas: = 2, kriterijai1: = FtrVal diapazonas ("a1") .Pasirinkite diapazoną (parinktį, pasirinkimą.Ind (xlToRight)). Pasirinkite intervalą (parinktį, pasirinkimą.Ind (xlDown)). Pasirinkite Selection.Copy SplitSht.Select Range („A1“). Pasirinkite ActiveSheet.Paste 'Cells.Select Cells .EntireColumn.AutoFit SplitSht.Name = FtrVal Application.CutCopyMode = False Kitas i App lication.DisplayAlerts = False wsCrit.Delete Application.DisplayAlerts = Tiesa .AutoFilterMode = False End Sub
Dėl šio patarimo RWomanizer.