Makro, kad būtų perkelti ar kopijuoti duomenis tarp „Excel“ darbaknygių

Šiame straipsnyje bus išmokyti, kaip kopijuoti arba perkelti duomenis tarp skaičiuokliųMicrosoft Excel“ naudojant „VBA“. Šiame konkrečiame pavyzdyje mes taip pat išmokysime, kaip sujungti duomenis, naudodami priedų užklausą. Šis užduočių derinys leis jums sujungti esamų darbo lapų duomenis, kad būtų lengviau analizuoti.

„Macro“, kad perkeltumėte arba kopijuotumėte duomenis „Excel“

Paimkime atvejį, kai reikia kopijuoti duomenis iš vienos darbaknygos ir tada pakeisti turinį į kitą darbo knygą. Šiame pavyzdyje darbo knygoje (šaltinio darbaknygėje) yra 1 2 3 4 5 ir 2 darbaknygėje yra 6 7 8 9 0 .

Po to, kai buvo atliktas makro darbas, dviejų darbų knygoje turėtų būti 6 7 8 9 0 1 2 3 4 5 . Abiejų darbo knygų formatai yra vienodi.

Čia yra makro, kuris gali perduoti ir pridėti jūsų duomenis. (Įsitikinkite, kad perskaitėte kodą PASTABA ):

 Sub CopyData ()

„Dim sBook_t“ kaip eilutė

„Dim sBook_s“ kaip eilutė

Dim sSheet_t Kaip eilutė

„Dim sSheet_s“ kaip eilutė

Dim lMaxRows_t Kaip ilgai

Dim lMaxRows_s Kaip ilgai

„Dim sMaxCol_s“ kaip eilutė

Dim sRange_t Kaip eilutė

„Dim sRange_s“ kaip eilutė

sBook_t = "Tiksliniai duomenys WB- Kopijuoti duomenis į WB.xls"

sBook_s = "Šaltinis duomenys WB - kopijuoti duomenis į WB.xls"

sSheet_t = "Tikslinis WB"

sSheet_s = "Šaltinis"

lMaxRows_t = Darbaknygės (sBook_t) .Lentelės (sSheet_t) .Žaidimai (eilutės.Skaičiuoti, „A“). Pabaiga (xlUp).

lMaxRows_s = Darbaknygės (sBook_s) .Lentelės (sSheet_s) .Žaidimai (eilutės.Skaičiavimas, „A“). Pabaiga (xlUp).

sMaxCol_s = Darbaknygės (sBook_s). Lapai (sSheet_s) .Kelės (1, Columns.Count) .End (xlToLeft) .Address

sMaxCol_s = Vidurio (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)

Jei (lMaxRows_t = 1) Tada

sRange_t = "A1:" & sMaxCol_s & lMaxRows_s

sRange_s = "A1:" & sMaxCol_s & lMaxRows_s

Darbaknygės (sBook_t) .Lentelės (sSheet_t) .Range (sRange_t) = Darbaknygės (sBook_s). Lapai (sSheet_s) .Range (sRange_s).

Kitas

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

sRange_s = "A2:" & sMaxCol_s & lMaxRows_s

Darbaknygės (sBook_t) .Lentelės (sSheet_t) .Range (sRange_t) = Darbaknygės (sBook_s). Lapai (sSheet_s) .Range (sRange_s).

„################################# PASTABA #################

„serijos numeris turi būti naudojamas taip pat turi būti nustatytas, o ne kopijuojamas

„jei nereikia, ištrinkite žemiau esančią eilutę

Darbaknygės (sBook_t) .Lentelės (sSheet_t) .Range („A“ ir „lMaxRows_t“). Automatinis užpildymo tikslas: = darbo knygos (sBook_t). Lapai (sSheet_t). - 1)), tipas: = xlFillSeries

Baigti Jei

Pabaiga

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai