Kako ustvariti makro za iskanje, kopiranje in lepljenje?

Težava

To je tisto, kar želim narediti. Imam delovni list s podatki o strankah po vrsti in imam tudi delovni list z računom, ki ga želim avtomatsko zapolniti s podatki o strankah iz delovnega lista s podatki.

Želel bi zgraditi makro, ki bo iskal referenčno številko, ki ji jo povem, in kopirati vrstico s podatki o strankah na delovni list računa, kjer bom povlekel vsako potrebno polje na račun (kar bom storil sam).

Zgradil sem makro, ki išče referenčno številko, izbere vrstico in kopira in prilepi vrstico v drugi delovni list. Moj problem je, ko sem šel, da dajo novo referenčno številko v moje malo iskalno polje sem ga še vedno išče referenčno številko sem setup makro z in sklicuje le inital vrstice sem setup makro ss podatki: (

Želim si, da bi mu lahko povedal:

Poiščite referenčno številko, ki jo kopiram sklicno številko in jo prilepite v najdeno na drugem delovnem listu, nato pa pritisnem preslednico, da izberem in kopiram podatke ter jih prilepim v drug delovni list. Ohranja referenčne vrednosti in referenčno številko.

Prosim pomagajte.

Tukaj sem do sedaj. Jaz sem nekakšen noob. Vsi aktivni drsniki na koncu se pomikajo in prilepijo makro pod mojimi računi, da lahko kasneje potegnem podatke.

 Razpon ("AM5: AS5"): Izberite ActiveCell.FormulaR1C1 = "33629" List ("Sheet2"). Izberite Cells.Find (Kaj: = "33629", Po: = ActiveCell, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Aktivirajte vrstice ("6: 6"). Izberite obseg ("C6"). Aktivirajte izbirne liste ("Sheet1") (2) ") Izberite ActiveWindow.SmallScroll Down: = 12 ActiveWindow.ScrollRow = 14 ActiveWindow.ScrollRow = 15 ActiveWindow.ScrollRow = 16 ActiveWindow.ScrollRow = 17 ActiveWindow.ScrollRow = 18 ActiveWindow.ScrollRow = 19 ActiveWindow.ScrollRow = 20 ActiveWindow .ScrollRow = 21 ActiveWindow.ScrollRow = 22 ActiveWindow.ScrollRow = 23 ActiveWindow.ScrollRow = 24 ActiveWindow.ScrollRow = 25 ActiveWindow.ScrollRow = 26 ActiveWindow.ScrollRow = 27 ActiveWindow.ScrollRow = 29 ActiveWindow.ScrollRow = 31 ActiveWindow.ScrollRow = 32 .ScrollRow = 33 ActiveWindow.ScrollRow = 36 ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollRow = 40 ActiveWindow.ScrollRow = 42 Dejanje: iveWindow.ScrollRow = 45 ActiveWindow.ScrollRow = 47 ActiveWindow.ScrollRow = 49 ActiveWindow.ScrollRow = 51 ActiveWindow.ScrollRow = 53 ActiveWindow.ScrollRow = 54 ActiveWindow.ScrollRow = 55 ActiveWindow.ScrollRow = 56 ActiveWindow.ScrollRow = 57 ActiveWindow.ScrollRow = 59 ActiveWindow.ScrollRow = 60 ActiveWindow.ScrollRow = 61 ActiveWindow.ScrollRow = 62 ActiveWindow.ScrollRow = 63 ActiveWindow.ScrollRow = 64 ActiveWindow.ScrollRow = 65 ActiveWindow.ScrollRow = 67 ActiveWindow.ScrollRow = 68 ActiveWindow.ScrollRow = 69 ActiveWindow.ScrollRow = 70 ActiveWindow.ScrollRow = 73 ActiveWindow.ScrollRow = 74 ActiveWindow.ScrollRow = 75 ActiveWindow.ScrollRow = 76 ActiveWindow.ScrollRow = 77 ActiveWindow.ScrollRow = 78 ActiveWindow.ScrollRow = 78 ActiveWindow.ScrollRow = 79 ActiveWindow.ScrollRow = 80 ActiveWindow.ScrollRow = 82 ActiveWindow.ScrollRow = 83 ActiveWindow.ScrollRow = 84 ActiveWindow.ScrollRow = 85 ActiveWindow.ScrollRow = 87 ActiveWindow.ScrollRow = 88 ActiveWindow.ScrollRow = 91 ActiveWindow.ScrollRow = 93 ActiveWindow.ScrollRow = 94 ActiveWindow.ScrollRow = 95 ActiveWindow.ScrollRow = 96 ActiveWindow.ScrollRow = 97 ActiveWindow.ScrollRow = 97 = 98 ActiveWindow.ScrollRow = 99 ActiveWindow.ScrollRow = 100 ActiveWindow.ScrollRow = 101 ActiveWindow.ScrollRow = 102 ActiveWindow.ScrollRow = 104 ActiveWindow.ScrollRow = 106 ActiveWindow.ScrollRow = 107 ActiveWindow.ScrollRow = 109 ActiveWindow.ScrollRow = 111 ActiveWindow.ScrollRow = 112 ActiveWindow.ScrollRow = 115 ActiveWindow.ScrollRow = 117 ActiveWindow.ScrollRow = 118 ActiveWindow.ScrollRow = 119 ActiveWindow.ScrollRow = 120 ActiveWindow.ScrollRow = 122 ActiveWindow.ScrollRow = 124 ActiveWindow.ScrollRow = 124 ActiveWindow.ScrollRow = 125 ActiveWindow.ScrollRow = 126 ActiveWindow.ScrollRow = 127 ActiveWindow.ScrollRow = 128 ActiveWindow.ScrollRow = 129 ActiveWindow.ScrollR ow = 130 ActiveWindow.ScrollRow = 131 ActiveWindow.ScrollRow = 132 ActiveWindow.ScrollRow = 135 ActiveWindow.ScrollRow = 136 ActiveWindow.ScrollRow = 137 ActiveWindow.ScrollRow = 139 ActiveWindow.ScrollRow = 141 ActiveWindow. ScrollRow = 142 ActiveWindow.ScrollRow = 143 ActiveWindow.ScrollRow = 144 ActiveWindow.ScrollRow = 147 ActiveWindow.ScrollRow = 148 ActiveWindow.ScrollRow = 149 ActiveWindow.ScrollRow = 150 ActiveWindow.ScrollRow = 151 ActiveWindow. ScrollRow = 152 ActiveWindow.ScrollRow = 153 ActiveWindow.ScrollRow = 154 ActiveWindow.ScrollRow = 155 ActiveWindow.ScrollRow = 156 ActiveWindow.ScrollRow = 157 ActiveWindow.ScrollRow = 158 ActiveWindow.ScrollRow = 159 ActiveWindow.ScrollRow = 160 Razpon ("A194"). Izberite ActiveSheet.Paste End Sub 

Rešitev

Popolna logika ni jasna. Pravkar sem "spremenil" vaš makro, tako da lahko razumete spremembe (čeprav mi lahko celoten makro veliko spreminjam).

ko zaženete makro, bo makro vprašal, katero številko želite poiskati, vnesite številko računa e; .g. 33629

Ampak imam eno težavo ok. najdete 33629 v listu2 in kopirajte celotno vrstico

goto sheet1 (2) in prilepite zgornjo vrstico v vrstico, kjer je prva celica A194 v drugem listu. v redu.

Ko pa izberete drugo številko, kamor želite kopirati vrstico v list 1 (2). to ni jasno.

Predlagam, da ohranite svoj prvotni delovni zvezek varno, kjer ga lahko prikličete.

nato zaženite makro in preverite, ali je ok. če je to v redu, potem odgovorite na moj qeustion v krepki undelined zgoraj. makro je lahko še bolj spremenjen.

V makrou sem na začetku nekaterih vrstic postavil en sam apostrof, tako da ne bodo delovale. Te vrstice lahko pozneje izbrišete, ko razumete makro

makro na tej stopnji je

 Sub TEST () Dim j Kot Double j = InputBox ("vnesite želeno številko, npr. 33629") 'Razpon ("AM5: AS5"). Izberite' ActiveCell.FormulaR1C1 = "33629" Listi ("Sheet2"). .Find (Kaj: = j, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Aktivirajte vrstice ("6: 6"). Izberi 'Območje ("C6"). Aktiviraj' Selection.Copy ActiveCell.EntireRow.Copy Worksheets ("sheet1 (2)"). Izberite Range ("A194"). PasteSpecial End Sub 

Opomba

Hvala za venkat1926 za ta nasvet na forumu.

Prejšnji Članek Naslednji Članek

Top Nasveti