Cum să utilizați VBA pentru a copia date de la o carte la alta, sirexcel

Provocarea este de a copia un anumit interval de aspectul actual, deschideți un alt registru de lucru, și inserați datele copiate într-o anumită celulă, salvați fișierul și închideți-l. Mai jos este codul VBA.

Opțiunea 2: Deschideți carte pentru a rula macro-uri pe care el a descoperit am nevoie de o carte de copiat de acolo datele necesare și a pus în cartea noastră deschisă, închideți fișierul care a fost copiat aceste date

Un alt exemplu - date de copiere variază de a deschide un registru de lucru Excel activ mai multe coli (în acest exemplu, 3 foi) într-o altă carte, care este păstrat într-un anumit loc. Datele vor fi introduse ca valoare, plus formate de celule vor fi mutate.

Vă mulțumesc pentru atenție.

Bine ai venit! Vă rog să mă ajute în rezolvarea problemei:

Există 2 fișiere. Primul fișier conține coloane de date, fișier de date este actualizată zilnic. În al doilea - masa finală. Doriți să copiați automat coloanele din primul fișier și introduceți capătul celui de al doilea tabel.

Am nevoie de un macro clic pentru a copia date dintr-o anumită coloană într-o coloană activă statică (în care se află cursorul).

Bună ziua.

Te rog spune-mi codul macro cu următoarele funcționalități:

Există câteva documente. Primul document - baza tuturor datelor, iar restul - documentele pe care doriți să le copiați unele date din baza de date.

Aș descrie în cuvinte macro după cum urmează:

Deschideți documentul fila „Baza“ „Sheet1“ copiați valoarea celulei C15, și apoi lipiți-l într-un document „Raport“ tab-ul „date“ în F19 domeniu.

Deschideți documentul fila „Baza“ „Sheet1“ copiați valoarea celulei C18, și apoi lipiți-l într-un document „Raport“ tab-ul din câmpul „Date“, în D20.

Deschideți documentul fila „Baza“ „Sheet1“ copiați valoarea celulei C24, și apoi lipiți-l într-un document „Raport“ tab-ul „Date“ în câmpul L3.

Da, numai valoarea pe care doriți să copiați (stilul și deci nu au nevoie), iar în cazul în care, de exemplu, într-o bază de date care celula a devenit gol, vidul este necesar să se înlocuiască valoarea care a fost înregistrată anterior în alte documente.

Programarea nu este puternică, dacă este posibil, cu o scurtă explicație.

Exemplu atașat. Valorile digitale și text, pot fi în același timp. Acestea ar trebui să fie copiate nemodificate (așa cum este prezentat). Parametru Domenii 2, 3, etc. Parametru Acesta joacă nici un rol. Că tocmai am arătat că celulele pot fi în diferite locuri.

Da, în exemplul numele oamenilor sunt aceleași, dar în realitate ele pot fi diferite, pentru că eu sunt un script și specificând modul în care se copiază datele la care celula. Poziția în lista de obicei, nu se schimba.

Bună seara. Sunt eu din nou.

Există o nouă provocare. Există un fișier în care sunt disponibile datele sursă.

Macro-ul pe care a ajutat la lansarea de copii numai din acest fișier special.

Și puteți face macro pentru a lucra de la orice alt fișier.

Adică, eu copiați macro într-un alt fișier, și menține o separat.

nr. încă o înlocuiește.

Poate te poate ajuta un pic diferit.

Aici este un macro care copiază banda dorită și copiază cartea dreapta.

Dar, la fel ca în primul exemplu de realizare, este necesar, după modificările din fișierul principal de date, nu introduceți în aceeași linie, și următorul.

Sub Knopka2 clic ()

„Knopka2_Schelchok Macro

„Comandă rapidă tastatură: Ctrl + j

Workbooks.Open Nume fișier: = "C: \ Users Slava \ Desktop \ Neuer Ordner \ 1.xlsm \"

Pasta Selection.PasteSpecial: = xlPasteColumnWidths, Operațiunea: = xlNone, _

Acesta poate fi atât de ușor?

Nu, nu mai ușor. Verificați din nou cu atenție. Am totul de lucru. Acestea nu sunt înlocuite, și sunt introduse în linia următoare.

Acum, prin modul în care am spus că nu trebuie să ia G5000, și F5000 ca în coloana G nimic nu este introdus, așa că înlocuiește datele, ca ultima linie este întotdeauna aceeași

Bună seara. Vreau să vă mulțumesc. Totul sa dovedit.

Eu doar metoda de „lance“ a schimbat un cod de biți. Și este această linie

iLastRow = Workbooks ( «Kniga1.xlsm»). Worksheets ( «Sheet1»). Intervalul ( «F5000»). End (xlUp) .Row + 1

Mulțumesc din nou.

Ceva nu funcționează. Cred că sunt undeva că nu a făcut, vine să elibereze copia intervalul de foaie din care doriți să copiați și să scrie 400 de eroare.

Iată un cod am pus în:

„Deschideți fișierul pe care doriți să copiați date

Workbooks.Open Nume fișier: = "C: \ central - 2c și 1,2,3p.xls"

„Copiați intervalul dorit în cartea deschisă pe foaia 1

„Activați doriți ca noi să rezervați

Registre de lucru ( «blank.xls nou»). Activați

„Izolat și introdus în celula de date copiate A1

ActiveWorkbook.Worksheets ( «Declarația de revendicare»). Intervalul ( «A1»). Selectați

„Închide cartea din care am copiat datele

Registre de lucru ( «Central - 2c și 1,2,3p.xls») Închide.

Central - 2c și 1,2,3p.xls - un fișier din care doriți să copiați.

2c și foaie 1H cu care doriți să copiați fișierul în cele de mai sus

Noul blank.xls este un document în care doriți să copiați

Declarația de revendicare - această listă într-un fișier într-o altă formă pe care doriți să copiați lista selectată de mai sus.

articole similare