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.