Excel - Kopiranje retka iz drugog lista

Problem

Ja radim s 2 Excel, Jedno polje je uobičajeno u oba excel "SID". Trebam kopirati redak SID-a iz riječi "ABC" iz Excela B i dodati u red istog SID-a "ABC" u excel A.

Imajte na umu da imam 14 listova u Excelu B. Izvor u kojem se traži SID i redak se mora dohvatiti.

tako da imam dva izazova pred sobom:

  • Odaberite jedan SID iz Excela A i pretražite ga u 14 listova Excela B
  • Nakon pronalaženja kopirati odgovarajući redak u excel B i dodati ga u odabrani SID u Excel A.

npr:

 Excel SID broj poruke Datum narudžbe ABC 43556 23/05/2009 

 Excel B Sheet 3 SID Ukupno dana SDT XYZ 12 45 ABC 21 32 

Rezultat bi trebao biti u programu Excel A:

ABC 43556 23/05/2009 21 32

Riješenje

Dajem vam makro "test" u tu svrhu. u primjeru radne knjige excel A (zapamtite da postoji razmak između "excel" i "A") sheet1 gdje imate glavne podatke dodajte još jedan uzorak podataka u trećem od A3 do desnog kao što je ovaj

jkh 23456 30.5.2009

Obje radne knjige SAMPLE-a moraju biti spremljene i otvorene.

Zatim isprobajte makronaredbu (dao sam još jedan makro "poništi" koji poništava rezultat makronaredbe "test")

Ako postoji problem recite mi koji kod izjavu daje problem i poruku o pogrešci, ako postoji

Parkirajte makronaredbe u VB uređivaču programa Excel A (strogo je mislila da nije važno)

testirajte makronaredbe u radnim knjigama i ako je uspješno koristite makronaredbu u izvornoj datoteci.

Prije nego što učinite da sigurnosne zapise čuvate na siguran način, tako da se zapisi mogu vratiti ako postoje poruke.

Makro 1:

 Sub test () Dim r As Range, c As Range Dim x As String, j As Integer, k As Integer Dim cfind As Range, r1 As Range With Workbooks ("excel A.xls") Radni listovi ("sheet1") Set r = Raspon (.Range ("A2"), .Range ("A2"). End (xlDown)) Za svaki c In rx = c.Vrijednost s radnim knjigama ("excel B.xls") j = .Worksheets.Count Za k = 1 To j s .Worksheets (k) Postavite cfind = .Cells.Find (što: = x, lookat: = xlWhole) Ako nije cfind Ništa onda postavite r1 = Raspon (cfind.Offset (0, 1), cfind.End (xlToRight)) r1.Copy GoTo lijepljenje End Ako se završi s 'radnim listovima (k) Sljedeći k Exit Sub End Sa' lijepljenjem druge knjige: c.Offset (0, 3) .PasteSpecial Next c End with 'first book End Pod 

Makro 2:

 Sub undo () S radnim knjigama ("excel A.xls") Radni listovi ("sheet1") Raspon (.Range ("d1"), .Range ("d1"). Kraj (xlToRight)). EntireColumn.Delete End With Kraj pod 

Bilješka

Zahvaljujući venkat1926 za ovaj savjet na forumu.

Prethodni Članak Sljedeći Članak

Top Savjeta