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.

Prejšnji Članek Naslednji Članek

Top Nasveti