Makró az adatok áthelyezéséhez vagy másolásához az Excel munkafüzetek között

Ez a cikk megtanítja, hogyan másolhat vagy továbbíthat adatokat a táblázatkezelők között a Microsoft Excel programban a VBA használatával. Ebben a konkrét példában azt is megtanítjuk, hogyan kell az adatokat összevonni egy hozzá tartozó lekérdezéssel. A feladatok ilyen kombinációja lehetővé teszi, hogy a meglévő munkalapok adatait egyszerűbb elemzés céljából egyesítse.

Makró az adatok áthelyezéséhez vagy másolásához Excelben

Vegyünk egy esetet, amikor adatokat kell másolni egy munkafüzetből, majd módosítani kell a tartalmat egy másik munkafüzetbe. Ebben a példában a munkafüzet (a forrás munkafüzet) 1 2 3 4 5 és a munkafüzet kettő 6 7 8 9 0 .

A makró futtatása után a két munkafüzetnek 6 7 8 9 0 1 2 3 4 5 kell lennie. Mindkét munkafüzet formátuma megegyezik.

Itt van egy makró, amely átadhatja és hozzáadhatja adatait. (Győződjön meg róla, hogy elolvasta a kódban található MEGJEGYZÉSET )

 Sub CopyData ()

Dim sBook_t karakterláncként

Dim sBook_s mint karakterlánc

Dim sSheet_t karakterláncként

Dim sSheet_s mint karakterlánc

Dim lMaxRows_t As Long

Dim lMaxRows_s Hosszú ideig

Dim sMaxCol_s karakterláncként

Dim sRange_t karakterláncként

Dim sRange_s mint karakterlánc

sBook_t = "Céladatok WB- Adatok másolása WB.xls-be"

sBook_s = "Forrásadatok WB - Adatok másolása WB.xls-be"

sSheet_t = "Cél WB"

sSheet_s = "Forrás"

lMaxRows_t = Munkafüzetek (sBook_t). Lapok (sSheet_t) .Cellek (sorok.szám, "A"). Vége (xlUp).

lMaxRows_s = Munkafüzetek (sBook_s). Lapok (sSheet_s) .Cellek (sorok. Szám, "A"). Vége (xlUp).

sMaxCol_s = Munkafüzetek (sBook_s). Lapok (sSheet_s) .Cells (1, Columns.Count) .End (xlToLeft) .Address

sMaxCol_s = Közép (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)

Ha (lMaxRows_t = 1) Ezután

sRange_t = "A1:" & sMaxCol_s & lMaxRows_s

sRange_s = "A1:" & sMaxCol_s & lMaxRows_s

Munkafüzetek (sBook_t) .Táblák (sSheet_t) .Range (sRange_t) = Munkafüzetek (sBook_s). Lapok (sSheet_s) .Range (sRange_s).

Más

sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)

sRange_s = "A2:" & sMaxCol_s & lMaxRows_s

Munkafüzetek (sBook_t) .Táblák (sSheet_t) .Range (sRange_t) = Munkafüzetek (sBook_s). Lapok (sSheet_s) .Range (sRange_s).

' ###################### JEGYZET #################

„a következő sorokat kell használni a sorszámmal, hogy azt is rögzítsük, hanem a másolás helyett

„ha nincs szükség, törölje az alábbi sort

Munkafüzetek (sBook_t) .Táblák (sSheet_t) .Range ("A" & lMaxRows_t) .Automatikus kitöltési cél: = munkafüzetek (sBook_t). Lapok (sSheet_t). - 1)), Típus: = xlFillSeries

Vége Ha

Vége vége

Előző Cikk Következő Cikk

Top Tippek