Kuidas luua makro, et otsida, kopeerida ja kleepida?

Probleem

Siin on see, mida ma tahan teha. Mul on tööleht kliendiandmete kaupa ja mul on ka tööleht koos arvega, mida ma tahan automaatse andmetega töölehele lisada.

Ma tahaksin ehitada makro, mis otsib viitenumbrit, mida ma seda ütlen, ja kopeerin rida kliendiandmetega arvete töölehele, kus ma tõmmatakse iga vajaliku väljale arvele (mida ma teen ise).

Ma ehitasin makro, mis otsib viitenumbrit, valib rea ja kopeerib ja kleebib rea teise töölehele. Minu probleem on see, kui ma lähen, et panen oma väikese otsingukasti juurde uue viitenumbri. Ma tegin selle ikka veel otsingu viitenumbriga I, kus makro seadistatakse, ja viitab ainult sisemisele reale, kus makroandmed koos: (

Ma soovin, et saaksin seda öelda:

Otsige viitenumbrit, mille kopeerin viitenumbri ja kleepin selle teise töölehe leidmisse, ja seejärel vajutan vahetuse ruumi andmete valimiseks ja kopeerimiseks ning teise töölehele kleepimiseks. See viitab initaalsetele vahemikele ja viitenumbrile.

Palun aidake.

Siin on see, mida ma siiani olen teinud. Ma olen selline noob. Kõik aktiivsed sirvid lõpus on minu makrode liigutamine ja kleepimine oma arvete alla, et saaksin andmeid hiljem tõmmata.

 Vahemik ("AM5: AS5") Valige ActiveCell.FormulaR1C1 = "33629" lehed ("Sheet2"). Valige Cells.Find (Mis: = "33629", pärast: = ActiveCell, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False). Aktiveerige read ("6: 6"). Vali vahemik ("C6") Aktiveeri valik. (2) ") .Valige 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 = 33 ActiveWindow.ScrollRow = 36 ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollRow = 40 ActiveWindow.ScrollRow = 42 seadus iveWindow.ScrollRow = 45 ActiveWindow.ScrollRow = 47 ActiveWindow.ScrollRow = 49 ActiveWindow.ScrollRow = 51 ActiveWindow.ScrollRow = 53 ActiveWindow.ScrollRow = 54 ActiveWindow. ActiveWindow.ScrollRow = 59 ActiveWindow.ScrollRow = 60 ActiveWindow.ScrollRow = 62 ActiveWindow.ScrollRow = 63 ActiveWindow.ScrollRow = 64 ActiveWindow. ActiveWindow.ScrollRow = 70 ActiveWindow. ActiveWindow.ScrollRow = 80 ActiveWindow.ScrollRow = 82 ActiveWindow.ScrollRow = 83 ActiveWindow.ScrollRow = 84 ActiveWindow.ScrollRow = 85 ActiveWindow.ScrollRow = 85 ActiveWindow.ScrollRow = 87 ActiveWindow. = 98 ActiveWindow.ScrollRow = 99 ActiveWindow.ScrollRow = 100 ActiveWindow.ScrollRow = 101 ActiveWindow.ScrollRow = 104 ActiveWindow.ScrollRow = 106 ActiveWindow. = 112 ActiveWindow.ScrollRow = 113 ActiveWindow.ScrollRow = 114 ActiveWindow.ScrollRow = 115 ActiveWindow.ScrollRow = 118 ActiveWindow.ScrollRow = 119 ActiveWindow.ScrollRow = 120 ActiveWindow.ScrollRow = 122 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 = 133 ActiveWindow.ScrollRow = 134 ActiveWindow.ScrollRow = 136 ActiveWindow.ScrollRow = 137 ActiveWindow.ScrollRow = 139 ActiveWindow.ScrollRow = 141 ActiveWindow. ScrollRow = 142 ActiveWindow.ScrollRow = 143 ActiveWindow.ScrollRow = 144 ActiveWindow.ScrollRow = 145 ActiveWindow.ScrollRow = 146 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 = 157 ActiveWindow.ScrollRow = 158 ActiveWindow.ScrollRow = 159 ActiveWindow.ScrollRow = 160 Range ("A194"). Valige ActiveSheet.Paste End Sub 

Lahendus

Täielik loogika ei ole selge. Ma olen just oma makro "muutnud", et saaksite muudatusi mõista (kuigi kogu makro võib mind palju muuta).

makro käivitamisel küsib makro, millist numbrit soovite otsida sinna arve number e .g. 33629

Aga mul on üks probleem. leiad lehelt2 33629 ja kopeerid kogu rea

goto sheet1 (2) ja kleepige ülaltoodud rida reale, kus esimene rakk on teises lehes A194. siiani ok.

Aga kui valite teise numbri, kuhu soovite lehel 1 (2) rida kopeerida. see ei ole selge.

Ma soovitan teil hoida oma originaalset töövihikut ohutuks, kus see on võimalik.

seejärel käivitage makro ja vaadake, kas see on ok. kui see on ok, siis vastata minu qeustionile paksus kirjas, ülalpool. makro võib olla veel muudetud.

Makro puhul panin mõne rea algusesse ühe apostroofi, nii et nad ei ole enam kasutatavad. Neid ridu saate hiljem kustutada pärast makro mõistmist

makro praeguses etapis on

 Alamõõt () Dim j Kui Double j = InputBox ("tippige soovitud number, nt 33629") 'Vahemik ("AM5: AS5"). Vali "ActiveCell.FormulaR1C1 =" 33629 "Lehted (" Sheet2 "). . (Vaata: = j, LookIn: = xlFormulas, LookAt _ = = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False). Aktiveeri 'read ("6: 6" ) .Vali "Range (" C6 "). Aktiveeri 'Selection.Copy ActiveCell.EntireRow.Copy töölehed (" sheet1 (2) "). Valige Range (" A194 "). 

Märge

Täname venkat1926 selle foorumi vihje eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited