Kako kopirati podatke iz enega Excelovega lista v drugo z uporabo formule
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:
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 EksplicitnaJavna 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.