Excel - Kopiranje vrstice iz drugega lista
Težava
Delam z 2 Excelom, eno polje je skupno v obeh excel "SID". Moram kopirati vrstico SID reči "ABC" iz Excel B in dodati v vrstico istega SID 'ABC' v excel A.
Prosim, upoštevajte, da imam 14 listov v Excelu B. Vir, v katerem je treba iskati SID, in vrstico je treba prenesti.
torej imam pred seboj dva izziva:
- Izberite enega SID iz Excel A in ga poiščite v 14 listih excel B
- Ko najdete kopijo ustrezne vrstice v Excelu B in jo dodajte v izbrani SID v Excelu A.
Npr:
Excel SID številka sporočila Datum naročila ABC 43556 23/05/2009
Excel B Sheet 3 SID Skupaj dni SDT XYZ 12 45 ABC 21 32
Rezultat mora biti v Excelu A:
ABC 43556 23/05/2009 21 32
Rešitev
V ta namen vam dajem makro "test". v vzorčnem delovnem zvezku excel A (ne pozabite, da je med listom "excel" in "A" presledek, kjer imate glavne podatke, dodajte še en vzorec podatkov v tretjem od A3 do desnega, kot je ta
jkh 23456 30.5.2009
Oba priročnika VZORCA morata biti shranjena in odprta.
Nato poskusite makro (podal sem še en makro "undo", ki razveljavi rezultat makra "test"
Če je problem, povej mi, katera koda izjavo daje problem in sporočilo o napaki, če obstaja
Parkirajte makre v urejevalniku VB za excel A (mislili, da ni pomembno)
preizkusite makre v vzorčnih delovnih knjigah in, če je uspešno, uporabite makro v izvirni datoteki.
PRED ZAČETKOM, KI VARNO OPRAVLJAJO ORIGANSKE DATOTEKE, TAKO LAHKO SE DOVOLJENJA DATOTEK PRIKLJUČIJO.
Makro 1:
Sub test () Dim r As Range, c As Range Dim x Kot niz, j As Integer, k As Integer Dim cfind As Range, r1 As Range With Workbooks ("excel A.xls"). Delovni listi ("sheet1") Set r = Območje (.Range ("A2"), .Range ("A2"). End (xlDown)) Za vsak c In rx = c.Value With Workbooks ("excel B.xls") j = .Worksheets.Count Za k = 1 To j z .Worksheets (k) Set cfind = .Cells.Find (kaj: = x, lookat: = xlWhole) Če ni cfind Nič, potem nastavite r1 = Razpon (cfind.Offset (0, 1), cfind.End (xlToRight)) r1.Kopiraj GoTo lepljenje Konec Če je konec Z "delovnimi listi" (k) Naslednja k Izhod Sub End Z "Druga knjiga lepljenje: c.Offset (0, 3) .PasteSpecial Naslednja c Konec" prva knjiga Konec Pod
Makro 2:
Sub undo () Z delovnimi zvezki ("excel A.xls"). Delovni listi ("sheet1") Razpon (.Range ("d1"), .Range ("d1"). End (xlToRight)). EntireColumn.Delete End With End Sub
Opomba
Hvala za venkat1926 za ta nasvet na forumu.