Så här kopierar du data från ett Excel-ark till en annan med hjälp av en formel

Många Excel- användare kämpar när man försöker räkna ut hur man flyttar data från ett inmatningsark till ett arkiverat ark. Även om Excel är ett kalkylblad som är utformat för att utföra komplexa beräkningar, såsom hypoteksavskrivningstabeller eller spårning av försäljningsuppgifter, undersöker de flesta aldrig sin djupare verksamhet.

Denna FAQ kommer att gå igenom hur du kvalificerar och flyttar dina data.

Kopiera data från ett Excel-ark till en annan med en formel

Börja med att öppna fliken utvecklare i Excel.

Därefter måste du konstruera Sheet Controller UserForm. Med denna UserForm kan du välja var data flyttas från, var data flyttas till, vilken kolumn som ska inspekteras för kvalificerad data för att bestämma om den rör sig och vad värdet av kolumnrubriken ska vara för att flytta den.

När du skapar din UserForm, speglar du följande exempel, var försiktig så att varje kontroll är korrekt:

Nu när du har skapat användarformuläret måste du bifoga kod till varje kontroll. I UserForm dubbelklickar du på kontrollen med namnet CommandButton2 . Diagrammet för användarformen ska inte längre vara synligt, och du bör nu presenteras med kodutforskaren, med standardkodblocket. Detta specifika kodblock börjar med Private Sub ComandButton2_Click () . Placera markören under första raden, men före raden som säger End Sub . Ange nu följande kod för att ställa in de offentliga variablerna som ska tillämpas på resten av koden:

Gå nu tillbaka till UserForm Explorer och dubbelklicka på den kontrollerade kommandotangenten3 . Än en gång får UserForm läggas åt sidan för kodutforskaren. Placera markören på det nyskapade kodblocket och ange följande kod:

I Explorer- delen av Project Explorer högerklickar du på Microsoft Excel Objects . Välj Infoga > Modul .

Dubbelklicka på modulen som heter Module1 och skriv in följande offentliga variabler:

Nu, fortsätt och sätt in ytterligare tre lakan i din arbetsbok. Du borde nu ha fyra ark med namnet Sheet1, Sheet2, Sheet3 och Sheet4 .

Ark1 lägger du in artiklar på cirka 10-15 linjer, med hjälp av bilden nedan som ett exempel på testdata:

Därefter klickar du på Kontroller > Infoga > knappen ikonen på fliken Utvecklare (ovanpå arbetsboken):

Placera nu knappen någonstans på ditt ark. När den frågar om makron väljer du Ny .

Du kommer att märka att den lade det nya makroet i modul2 av projektet. Markera kodblocket i modul2, klipp det från modul2 . Dubbelklicka nu på Module1 . När koden Explorer öppnas, högerklicka och välj Klistra in . Du borde nu ha ett tomt kodblock som läser:

Placera markören inuti kodblocket och lägg till följande kod:

Du kommer märka att det finns en funktion som heter Buildform . Detta ställer in UserForm för lämpligt antal ark, efter att de har lagrat dem. För att tillämpa detta, placera följande kod i kodutforskaren, nedanför Button1_Click () underrutinen:

Inom buildform- funktionen finns en annan funktion som heter Counttabs . Du borde placera den här koden ovanför Buildform- koden, men under Button1_click- subrutinen:

Om både TabFrom och TabTo- variablerna är inställda, måste du sedan köra funktionen createNew () . Placera underkoden i kodutforskaren ovanför knapprutorna under knapp1_click :

Om du har valt att skapa ett nytt ark, ändra TabTo- variabeln till det nya arknamnet. Du måste då köra LoopForMove (TabFrom, TabTo) rutinen. Ange kod i koden Explorer :

För att hitta den sista raden av ditt ark anger du underkoden i kodfönstret ovanför LoopForMove (FromWhatSheet, ToWhatSheet) :

Nu kan du flytta den aktuella koden med funktionen Moveit (FromWhatSheet, CellLoc, ToWhatSheet, CutVal) . Mellan LooForMove () och createNew () -funktionerna, placera följande kod:

| Fantasi]

Fortsätt att springa igenom varje rad på Från- arket och leta efter kvalificerade poster, med hjälp av en för-loop- funktion.

För att sammanfatta handlingarna i en UserForm, se följande illustration:

Här är samma illustration med den här gången, med flera element som beaktas:

Slutligen är här ovannämnda kod i sin helhet:

 Alternativ Explicit

Public TabFrom

Public TabTo

Public Qualif As String

Public WhatCol

Public WhatLogic

Public CutVal

Public FormXcel

Funktion FindLastRow (OnWhatsheet)

FindLastRow = Celler (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

Om WhatCol = "" Då

WhatCol = "A"

Avsluta om

Om Qualif = "" Då

Qualif = "X"

Avsluta om

ThisWorkbook.Worksheets (FromWhatSheet) .Select

LastRow = FindLastRow (FromWhatSheet)

För Cnt = LastRow till 1 steg -1

CellLoc = WhatCol & Cnt

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

Om CellValue = Qualif Then

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

Avsluta om

Nästa

Slutfunktion

Funktion Moveit (FromSheet, WhatRange, ToWhere, CutVal)

Dim MoveSheetLastRow

Med ThisWorkbook.Worksheets (FromSheet)

.Välj

.Range (WhatRange) .EntireRow.Select

Sluta med

Selection.Copy

Om CutVal = True Then

Selection.Cut

Avsluta om

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

Om TabTo = "Nytt blad" Då

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

NewSheet = ThisWorkbook.ActiveSheet.Name

TabTo = NewSheet

Avsluta om

Slutfunktion

Underknapp1_Click ()

Dim nret

buildform

Om FormXcel = False Then

Om TabFrom "" och TabTo "" Då

skapa ny

nret = LoopForMove (TabFrom, TabTo)

Annan

MsgBox ("Ange ett" Från "och ett" Till "-ark!")

Avsluta om

Avsluta om

Slutdel

Funktion Counttabs ()

Counttabs = ThisWorkbook.Worksheets.Count

Slutfunktion

Funktionsbyggnadsform ()

Dim TabCount

Controller.ComboBox2.AddItem "New Sheet"

För TabCount = 1 Till Counttabs

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

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

Nästa

Controller.Show

Slutfunktion

Tack till ace3mark för detta tips.

Bild: © Microsoft.

Tidigare Artikel Nästa Artikel

Bästa Tipsen