Excel - Sor másolása egy másik lapról

Probléma

2 Excelrel dolgozom, az egyik mező gyakori mind az excel "SID" -nél. Meg kell másolni az SID sorát az „ABC” -ből az Excel B-ből, és hozzá kell adnom ugyanazon SID „ABC” sorához az Excelben.

Kérjük, vegye figyelembe, hogy 14 lap van az Excel B-ben. A forrást, ahol az SID-t kell keresni, és a sort kell letölteni.

tehát 2 kihívásom van előttem:

  • Válasszon ki egy SID-t az Excel A-ből, és keresse meg 14-ben az Excel B lapot
  • Miután megtalálta a másolatot a megfelelő sorban a B-ben, és hozzáadta azt az Excel A kijelölt SID-hez.

Például:

 Excel A SID üzenet száma Rendelés dátuma ABC 43556 23/05/2009 

 Excel B lap 3 SID Összes nap SDT XYZ 12 45 ABC 21 32 

Az eredménynek Excelben kell lennie:

ABC 43556 23/05/2009 21 32

Megoldás

Erre a célra makro "tesztet" adok. a minta munkafüzetben az A (emlékezz arra, hogy az "excel" és az "A" között van hely) lap1, ahol a fő adatok hozzáadnak még egy mintaadatot az A3-tól a jobbra, mint ez

jkh 23456 2009/30/30

Mindkét SAMPLE munkafüzetet el kellett menteni és megnyitni.

Ezután próbálja meg a makrót (adtam egy másik makrót „visszavonás”, amely visszavonja a makró teszt eredményét)

Ha probléma merülne fel, mondja meg, hogy melyik kód utasítás adja meg a problémát, és ha van ilyen hibaüzenet

Parkolja le a makrókat az „A” excel VB szerkesztőjében (szigorúan gondoltam, hogy nem számít)

tesztelje a makrókat a minta munkafüzeteiben, és ha sikeres, használja az eredeti fájl makróját.

ELTÉRŐL, HOGY TÖRTÉNŐ KÖVETKEZŐK A SZÁLLÍTÁSI FÁJLOKBÓL SZÜKSÉGES, HOGY A FÁJLOK MEGHATÁROZHATÓ, HA SZÜKSÉGES SZÜKSÉG.

Makró 1:

 Sub teszt () Dim r mint tartomány, c tartományként x x karakterláncként, j mint integer, k Mivel az integer Dim Cfind mint tartomány, r1 mint tartomány a munkafüzetekkel ("excel A.xls"). r = tartomány (.Range ("A2"), .Range ("A2"). Vége (xlDown)) Minden c esetén rx = c.Value Workbooks ("excel B.xls") j = .Worksheets.Count A k = 1 To j-hez .Worksheets (k) beállítása cfind = .Cells.Find.Find (ami: = x, lookat: xlWhole) Ha nincs cfind Nincs semmi, akkor állítsa az r1 = Range (cfind.Offset (0, 1), cfind.End (xlToRight)) r1.Copy GoTo beillesztése Vége Ha befejezi munkalapokat (k) Következő k Kilépés az End End-ből 'Második könyv beillesztésével: c.Offset (0, 3) .PasteSpecial Következő c Vége az első könyv végén Alatti 

Makró 2:

 Visszavonás () Munkafüzetekkel ("excel A.xls"). Munkalapok ("sheet1") Tartomány (.Range ("d1"), .Range ("d1"). Vége (xlToRight). Vége vége 

jegyzet

Köszönet a venkat1926-nak a fórumon található tippért.

Előző Cikk Következő Cikk

Top Tippek