Sådan kopieres data fra et Excel-ark til et andet ved hjælp af en formel

Mange Excel- brugere kæmper, når de forsøger at finde ud af, hvordan man flytter data fra et ark på et arkiveret ark. Selv om Excel er et regneark, der er udformet til at udføre komplekse beregninger, som f.eks. Hypoteksafskrivningstabeller eller sporing af salgstal, undersøger de fleste aldrig sine mere dybtgående operationer.

Denne FAQ vil lede dig igennem, hvordan du kvalificerer og flytter dine data.

Kopiering af data fra et Excel-ark til et andet med en formel

Start med at åbne fanen Developer i Excel.

Derefter skal du konstruere Sheet Controller UserForm. Denne UserForm giver dig mulighed for at vælge, hvor dataene flyttes fra, hvor dataene flyttes til, hvilken kolonne der skal inspiceres for de kvalificerende data for at afgøre, om den bevæger sig, og hvad værdien af ​​kolonneindtastningen skal være at flytte den.

Når du opretter din UserForm, skal du spejle følgende eksempel, og sørg for at navngive hver kontrol korrekt:

Nu hvor du har opbygget brugerformularen, skal du vedhæfte kode til hver kontrol. Dobbeltklik på kontrollen med navnet CommandButton2 i UserForm. Diagrammet til brugerformularen skal ikke længere være synligt, og du bør nu præsenteres med kodestifteren, med standard kodeblok. Denne bestemte kodeblok starter med Private Sub ComandButton2_Click () . Placer markøren under første linie, men før linjen, der siger End Sub . Indtast nu følgende kode for at indstille de offentlige variabler, der skal anvendes til resten af ​​koden:

Gå nu tilbage til UserForm Explorer, og dobbeltklik på den kontrollerede CommandButton3 . Endnu engang bliver UserForm sat til side for kod explorer. Placer markøren på den nyoprettede kodeblok, og indtast følgende kode:

Højreklik på Microsoft Excel-objekter i Explorer- sektionen i Project Explorer. Vælg Indsæt > Modul .

Dobbeltklik på modulet Modul 1, og skriv følgende offentlige variabler:

Nu fortsæt og indsæt tre flere ark i din projektmappe. Du skal nu have fire ark med navnet Sheet1, Sheet2, Sheet3 og Sheet4 .

ark1 placeres emner i ca. 10-15 linjer ved hjælp af nedenstående billede som et eksempel på testdataene:

Klik derefter på Kontrol > Indsæt > knappen ikonet på fanen Udvikler (øverst på projektmappen):

Nu skal du placere knappen hvor som helst på dit ark. Når det spørger om makroer, skal du vælge Ny .

Du vil bemærke, at den placerede den nye makro i modul2 af projektet. Fremhæv kodeblokken i Module2, skær det fra Module2 . Dobbeltklik nu på Module1 . Når Code Explorer åbnes, højreklik og vælg Indsæt . Du skal nu have en tom kodeblok, der lyder:

Placer markøren inde i kodeblokken, og tilføj følgende kode:

Du vil bemærke, at der er en funktion, der hedder Buildform . Dette opsætter UserForm for det relevante antal ark, efter at de har taget beholdning af dem. For at anvende dette skal du placere følgende kode i Code Explorer, under Button1_Click () subrutinen:

Inden for buildform- funktionen er der en anden funktion kaldet Counttabs . Du skal placere denne kode over Buildform- koden, men under Button1_click- subrutinen:

Hvis både TabFrom og TabTo- variablerne er indstillet, skal du derefter køre createNew () -funktionen. Placer nedenstående kode i Code Explorer, over Button1_click subrutinerne:

Hvis du har valgt at oprette et nyt ark, skal du ændre TabTo- variablen til det nye arknavn . Du skal derefter køre LoopForMove (TabFrom, TabTo) rutinen. I Code Explorer skal du indtaste følgende kode:

For at finde den sidste række af dit ark skal du indtaste nedenstående kode i Code Explorer, over LoopForMove (FromWhatSheet, ToWhatSheet) :

Nu kan du flytte den aktuelle kode ved hjælp af funktionen Moveit (FromWhatSheet, CellLoc, ToWhatSheet, CutVal) . Mellem LooForMove () og createNew () funktionerne skal du placere følgende kode:

| Fancy]

Fortsæt med at løbe gennem hver linje på Fra arket og kigge efter kvalificerede poster ved hjælp af en For Loop- funktion.

For at opsummere handlingerne i en UserForm, se følgende illustration:

Her er den samme illustration med denne gang med flere elementer taget i betragtning:

Endelig er her den førnævnte kode i sin helhed:

 Mulighed Eksplicit

Offentlig TabFrom

Offentlig TabTo

Public Qualif As String

Offentlig WhatCol

Offentlig WhatLogic

Offentlige CutVal

Offentlig FormXcel

Funktion FindLastRow (OnWhatsheet)

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

Slutfunktion

Funktion LoopForMove (FromWhatSheet, ToWhatSheet)

Dim LastRow, Cnt

Dim CellValue As String

Dim CellLoc

Dim nret

Hvis WhatCol = "" Så

WhatCol = "A"

Afslut Hvis

Hvis Qualif = "" Så

Qualif = "X"

Afslut Hvis

ThisWorkbook.Worksheets (FromWhatSheet) .Select

LastRow = FindLastRow (FromWhatSheet)

For Cnt = LastRow til 1 trin -1

CellLoc = WhatCol & Cnt

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

Hvis CellValue = Qualif Then

nret = Moveit (FromWhatSheet, CellLoc, ToWhatSheet, CutVal)

Afslut Hvis

Næste

Slutfunktion

Funktion Moveit (FromSheet, WhatRange, ToWhere, CutVal)

Dim MoveSheetLastRow

Med ThisWorkbook.Worksheets (FromSheet)

.Vælg

.Range (WhatRange) .EntireRow.Select

Slut med

Selection.Copy

Hvis CutVal = True Then

Selection.Cut

Afslut Hvis

MoveSheetLastRow = FindLastRow (ToWhere)

ThisWorkbook.Worksheets (ToWhere) .Select

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

Selection.Insert

ThisWorkbook.Worksheets (FromSheet) .Select

Application.CutCopyMode = False

Slutfunktion

Funktion createNew ()

Dim NewSheet

Hvis TabTo = "Nyt ark" Så

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

NewSheet = ThisWorkbook.ActiveSheet.Name

TabTo = NewSheet

Afslut Hvis

Slutfunktion

Sub-knap1_Klik ()

Dim nret

buildform

Hvis FormXcel = False Then

Hvis TabFrom "" Og TabTo "" Så

lav ny

nret = LoopForMove (TabFrom, TabTo)

Andet

MsgBox ("Angiv venligst 'Fra' og 'Til' ark!")

Afslut Hvis

Afslut Hvis

Slutdel

Funktion Counttabs ()

Counttabs = ThisWorkbook.Worksheets.Count

Slutfunktion

Funktionsbygningsform ()

Dim TabCount

Controller.ComboBox2.AddItem "Nyt ark"

For TabCount = 1 Til Counttabs

Controller.ComboBox1.AddItem ThisWorkbook.Worksheets (TabCount) .Name

Controller.ComboBox2.AddItem ThisWorkbook.Worksheets (TabCount) .Name

Næste

Controller.Show

Slutfunktion

Tak til ace3mark for dette tip.

Billede: © Microsoft.

Forrige Artikel Næste Artikel

Top Tips