Kako kopirati podatke iz enega Excelovega lista v drugo z uporabo formule

Mnogi uporabniki programa Excel se borijo, ko poskušajo ugotoviti, kako prenesti podatke iz vnosnega lista na arhivirani list. Čeprav je Excel preglednica, zasnovana za izvajanje kompleksnih izračunov, kot so tabele za amortizacijo hipotek ali sledenje prodajnim podatkom, večina ljudi nikoli ne raziskuje svojih poglobljenih operacij.

Ta pogosta vprašanja vas bodo seznanili s tem, kako kvalificirati in premakniti svoje podatke.

Kopiranje podatkov iz enega Excelovega lista v drugega s formulo

Začnite z odpiranjem zavihka za razvijalce v Excelu.

Nato morate zgraditi uporabniško obliko krmilnika listov. Ta uporabniška oblika vam omogoča, da izberete, kam naj se premaknejo podatki, kam se podatki premaknejo, v kateri stolpec preverijo, ali so kvalificirani podatki določeni, ali se premakne, in kakšna bi morala biti vrednost vnosa stolpca za premik.

Ko ustvarjate svoj uporabniški obrazec, zrcalite naslednji primer, pri čemer pazite, da bo vsak nadzor pravilno imenovan

Zdaj, ko ste izdelali uporabniško obliko, morate vsakemu kontrolniku priložiti kodo. V uporabniški obliki dvokliknite kontrolnik z imenom CommandButton2 . Diagram uporabniškega obrazca ne bi smel biti več viden in zdaj bi vam bilo treba predstaviti raziskovalca kode s privzetim kodnim blokom. Ta poseben kodni blok se začne z zasebnim Sub ComandButton2_Click () . Postavite kazalko pod prvo vrstico, vendar pred črto, ki pravi Končno podmeni . Zdaj vnesite naslednjo kodo, da nastavite javne spremenljivke, ki bodo uporabljene za preostanek kode:

Zdaj pa se vrnite v Raziskovalec uporabniških obrazcev in dvokliknite kontrolnik z oznako CommandButton3 . Še enkrat, se uporabniški obrazec odstrani za raziskovalca kode. Postavite kazalko na novo ustvarjen kodni blok in vnesite naslednjo kodo:

V Raziskovalcu v Raziskovalcu projektov z desno tipko miške kliknite Microsoft Excelovi predmeti . Izberite Vstavi > Modul .

Dvokliknite modul Module1 in vnesite naslednje javne spremenljivke:

Zdaj pa vstavite še tri liste v delovni zvezek. Sedaj bi morali imeti štiri liste, imenovane Sheet1, Sheet2, Sheet3 in Sheet4 .

Na Sheet1 postavite elemente v približno 10-15 vrstic, pri čemer uporabite spodnjo sliko kot primer preskusnih podatkov:

Nato na zavihku Razvijalec (na vrhu delovnega zvezka) kliknite Nadzorni elementi> Vstavi > ikona gumba :

Sedaj postavite gumb kjerkoli na vašem listu. Ko vas vpraša o makrih, izberite Novo .

Opazili boste, da je novi makro postavil v Modul2 projekta. Označite kodni blok v modulu2 in ga izrežite iz modula2 . Zdaj dvokliknite Modul1 . Ko se odpre Explorer za kodo, z desno tipko miške kliknite in izberite Prilepi . Zdaj bi morali imeti prazen kodni blok, ki se glasi:

Postavite kazalko v kodni blok in dodajte naslednjo kodo:

Opazili boste, da obstaja funkcija, imenovana Buildform . Ta nastavi uporabniško obliko za ustrezno število listov, potem ko jih popiše. Če želite uporabiti to, postavite naslednjo kodo v Raziskovalec kod, pod podprogramom Button1_Click () :

V funkciji buildform je še ena funkcija, imenovana Counttabs . To kodo morate postaviti nad kodo za izdelavo, vendar pod podprogramom Button1_click :

Če sta nastavljeni spremenljivki TabFrom in TabTo, boste morali zagnati funkcijo createNew () . Postavite spodnjo kodo v Raziskovalca kod, nad podprograma Button1_click :

Če ste izbrali ustvarjanje novega lista, spremenite spremenljivko TabTo v novo ime lista. Nato boste morali zagnati rutino LoopForMove (TabFrom, TabTo) . V Raziskovalcu kode vnesite naslednjo kodo:

Če želite najti zadnjo vrstico svojega lista, vnesite spodnjo kodo v Raziskovalec kod, nad LoopForMove (FromWhatSheet, ToWhatSheet) :

Zdaj lahko dejansko kodo premaknete z uporabo funkcije Moveit (FromWhatSheet, CellLoc, ToWhatSheet, CutVal) . Med funkcijami LooForMove () in createNew () postavite naslednjo kodo:

| fancy]

Nadaljujte z zanko skozi vsako vrstico na listu From, iščete kvalificirane vnose s funkcijo For Loop .

Če povzamemo dejanja uporabniške oblike, glejte naslednjo ilustracijo:

Tukaj je ista ilustracija s tem, ko se upošteva več elementov:

Nazadnje, tukaj je omenjena koda v celoti:

 Možnost Eksplicitna

Javna tabFrom

Javno TabTo

Javno Qualif As String

Public WhatCol

Javni WhatLogic

Javni CutVal

Javna oblika obrazca

Funkcija FindLastRow (OnWhatsheet)

FindLastRow = Celice (ThisWorkbook.Worksheets (OnWhatsheet) .Rows.Count, 1) .End (xlUp).

Končna funkcija

Funkcija LoopForMove (FromWhatSheet, ToWhatSheet)

Dim LastRow, Cnt

Dim CellValue kot niz

Dim CellLoc

Dim nret

Če WhatCol = "" Potem

WhatCol = "A"

End If

Če je Qualif = "" Nato

Qualif = "X"

End If

ThisWorkbook.Worksheets (FromWhatSheet). Izberite

LastRow = FindLastRow (FromWhatSheet)

Za Cnt = LastRow Za 1 Korak -1

CellLoc = WhatCol & Cnt

CellValue = ThisWorkbook.Worksheets (FromWhatSheet) .Range (CellLoc) .Value

Če je CellValue = Qualif nato

nret = Premakni (IzKajSheSet, CellLoc, ToWhatSheet, CutVal)

End If

Naslednji

Končna funkcija

Funkcija Premakni (FromSheet, WhatRange, ToWhere, CutVal)

Dim MoveSheetLastRow

Z ThisWorkbook.Worksheets (FromSheet)

.Izberite

.Range (WhatRange) .EntireRow.Select

Končaj s

Izbira. Kopiraj

Če CutVal = True nato

Izbira

End If

MoveSheetLastRow = FindLastRow (ToWhere)

ThisWorkbook.Worksheets (ToWhere). Izberite

ThisWorkbook.Worksheets (ToWhere) .Cells (MoveSheetLastRow + 1, 1) .EntireRow.Select

Vstavi

ThisWorkbook.Worksheets (FromSheet). Izberite

Application.CutCopyMode = False

Končna funkcija

Funkcija createNew ()

Dim NewSheet

Če TabTo = "Nov list" Nato

ThisWorkbook.Sheets.Add After: = Listi (Sheets.Count)

NewSheet = ThisWorkbook.ActiveSheet.Name

TabTo = NewSheet

End If

Končna funkcija

Sub Button1_Click ()

Dim nret

buildform

Če FormXcel = False potem

Če TabFrom "" In TabTo "" Potem

createNovo

nret = LoopForMove (TabFrom, TabTo)

Drugače

MsgBox ("Prosim nastavite" Od "in" Na "list!")

End If

End If

End Sub

Funkcija Counttabs ()

Counttabs = ThisWorkbook.Worksheets.Count

Končna funkcija

Oblikovanje funkcije ()

Dim TabCount

Controller.ComboBox2.AddItem "Nov list"

Za TabCount = 1 za Counttabs

Controller.ComboBox1.AddItem ThisWorkbook.Worksheets (Tab Tab).

Controller.ComboBox2.AddItem ThisWorkbook.Worksheets (Tab Tab).

Naslednji

Controller.Show

Končna funkcija

Zahvaljujemo se vam za točko za ta nasvet.

Slika: © Microsoft.

Prejšnji Članek Naslednji Članek

Top Nasveti