„Microsoft Excel“ galime nukopijuoti langelius iš aktyvios ląstelės eilutės į konkretų lapą. Šiame straipsnyje mes naudosime VBA kodą, norėdami perkelti duomenis iš kiekvieno lapo ir sujungti duomenis į vieną darbalapį. Į darbo knygą įdėsime pagrindinį lapą ir išsaugosime duomenis iš nurodyto diapazono į vieną lapą.
Pavyzdiniai kodai bus nukopijuoti į duomenų bazės lapą pavadinimu „Sheet2“. Kiekvieną kartą, kai vykdome makrokomandą, ląstelės bus dedamos žemiau paskutinės eilutės su duomenimis po paskutinio 2 stulpelio stulpelio. Ši makrokomanda nukopijuos langelius iš A, D stulpelio iš „ActiveCell“.
Toliau pateikiamas pavyzdinių duomenų vaizdas:
Norėdami nukopijuoti langelius iš aktyvių ląstelių eilutės į Sheet2; Norėdami paleisti VB redaktorių, turime atlikti šiuos veiksmus:
- Spustelėkite skirtuką Kūrėjas
- Iš kodų grupės pasirinkite „Visual Basic“
- Spustelėkite Įterpti, tada - Modulis
- Tai sukurs naują modulį
- Į standartinį modulį įveskite šį kodą
Sub CopyCells () Dim sourceRange Kaip diapazonas Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Ląstelės (_ ActiveCell.Row, 1). ("A1: D1") Nustatykite destrange = Sheets ("Sheet2"). Diapazonas ("A" ir Lr) sourceRange.Copy destrange End Sub
Sub CopyCellsValues () Dim sourceRange Kaip diapazonas Dim desrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Ląstelės (_ ActiveCell.Row, 1). ("A1: D1") Su sourceRange Set destrange = Sheets ("Sheet2"). Diapazonas ("A" _ & Lr) .Resize (.Rows.Count, .Columns.Count) Pabaiga su destrange.Value = sourceRange.Value Pabaiga Sub
Funkcija LastRow (sh kaip darbalapis) Įvyko klaida Tęsti kitą LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Eilutės klaida GoTo 0 End Function
Funkcija Lastcol (sh kaip darbalapis) Dėl klaidos Tęsti Toliau Lastcol = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Stulpelis apie klaidą GoTo 0 End Function
- Norėdami patikrinti aukščiau pateiktą VBA kodą; pridėkite duomenų diapazone „A1: D1“ ir paleiskite makrokomandą paspausdami F5 spartųjį klavišą
- Nurodytame diapazone saugomi duomenys bus nukopijuoti į „Sheet2“, pradedant nuo A1
- Jei dar kartą paleisime šią makrokomandą; duomenys bus išsaugoti kitoje eilutėje; žiūrėkite žemiau esančiame paveikslėlyje:
- Mes galime pakeisti aukščiau pateiktos makrokomandos diapazoną, atitinkantį mūsų reikalavimus
Išvada: Naudodami aukščiau pateiktą makrokomandą, naudodami VBA kodą, galime nukopijuoti langelius iš aktyvios ląstelės eilutės į naują lapą.
Jei jums patiko mūsų tinklaraščiai, pasidalykite jais su draugais „Facebook“. Taip pat galite sekti mus „Twitter“ ir „Facebook“.
Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime patobulinti, papildyti ar naujovinti savo darbą ir padaryti jį geresnį. Parašykite mums el