Ako vytvoriť makro na vyhľadávanie, kopírovanie a vkladanie?

Problém

Tu je to, čo chcem robiť. Mám pracovný hárok s údajmi o zákazníkoch podľa riadkov a tiež mám pracovný hárok s faktúrou, ktorú chcem automaticky vyplniť s informáciami o zákazníkoch z pracovného hárka s údajmi.

Chcel by som vytvoriť makro, ktoré bude vyhľadávať referenčné číslo, ktoré mu poviem, a skopírujte riadok s údajmi o zákazníkoch do pracovného hárku faktúry, kde budem vytiahnuť každé potrebné pole na faktúru (ktorú urobím sám).

Vytvoril som makro, ktoré vyhľadáva referenčné číslo, vyberá riadok a skopíruje a prilepí riadok do iného pracovného hárka. Môj problém je, keď idem dať nové referenčné číslo do môjho malého vyhľadávacieho poľa som urobil to stále vyhľadáva referenčné číslo nastavím makro s a odkazy len inital riadok Nastavím makro s údajmi :(

Prial by som si to povedať:

Hľadať referenčné číslo, ktoré som skopírovať referenčné číslo a prilepiť ho do nájsť na inom pracovnom hárku, a potom som stlačenie posun priestoru vybrať a skopírovať dáta a vložiť ho do iného pracovného hárka. Uvádza odkazy na initalové rozsahy a referenčné číslo.

Prosím pomôžte.

Tu je to, čo mám doteraz. Som trochu noob. Všetky aktívne posúvanie na konci je rolovanie a vkladanie makra pod moje faktúry, aby som mohol dáta neskôr vytiahnuť.

 Rozsah ("AM5: AS5") Vyberte ActiveCell.FormulaR1C1 = "33629" listy ("Sheet2") Vyberte Cells.Find (Čo: = "33629", Po: = ActiveCell, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Aktivovať riadky ("6: 6") Vyberte rozsah ("C6"). (2) "). Vyberte 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 = 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 = 29 ActiveWindow.ScrollRow = 31 ActiveWindow.ScrollRow = 32 .ScrollRow = 33 ActiveWindow.ScrollRow = 36 ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollRow = 40 ActiveWindow.ScrollRow = 42 Akt 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 = 56 ActiveWindow.ScrollRow = 57 ActiveWindow.ScrollRow = 58 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 = 67 ActiveWindow.ScrollRow = 68 ActiveWindow.ScrollRow = 69 ActiveWindow.ScrollRow = 70 ActiveWindow.ScrollRow = 71 ActiveWindow.ScrollRow = 72 ActiveWindow.ScrollRow = 73 ActiveWindow.ScrollRow = 74 ActiveWindow.ScrollRow = 75 ActiveWindow.ScrollRow = 76 ActiveWindow.ScrollRow = 77 ActiveWindow.ScrollRow = 78 ActiveWindow.ScrollRow = 77 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 = 89 ActiveWindow.ScrollRow = 90 ActiveWindow.ScrollRow = 91 ActiveWindow.ScrollRow = 93 ActiveWindow.ScrollRow = 94 ActiveWindow.ScrollRow = 95 ActiveWindow.ScrollRow = 96 ActiveWindow.ScrollRow = 97 ActiveWindow.ScrollRow = 96 ActiveWindow.ScrollRow = 97 ActiveWindow.ScrollRow = 97 ActiveWindow.ScrollRow = 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 = 109 ActiveWindow.ScrollRow = 111 ActiveWindow.ScrollRow = 111 ActiveWindow.ScrollRow = 112 ActiveWindow.ScrollRow = 113 ActiveWindow.ScrollRow = 114 ActiveWindow.ScrollRow = 115 ActiveWindow.ScrollRow = 117 ActiveWindow.ScrollRow = 118 ActiveWindow.ScrollRow = 119 ActiveWindow.ScrollRow = 120 ActiveWindow.ScrollRow = 122 ActiveWindow.ScrollRow = 124 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 = 133 ActiveWindow.ScrollRow = 134 ActiveWindow.ScrollRow = 135 ActiveWindow.ScrollRow = 136 ActiveWindow.ScrollRow = 137 ActiveWindow.ScrollRow = 139 ActiveWindow.ScrollRow = 137 ActiveWindow.ScrollRow = 139 ActiveWindow.ScrollRow = 141 ActiveWindow.ScrollRow = 139 ActiveWindow.ScrollRow = 141 ActiveWindow. ScrollRow = 142 ActiveWindow.ScrollRow = 143 ActiveWindow.ScrollRow = 144 ActiveWindow.ScrollRow = 145 ActiveWindow.ScrollRow = 146 ActiveWindow.ScrollRow = 147 ActiveWindow.ScrollRow = 148 ActiveWindow.ScrollRow = 149 ActiveWindow.ScrollRow = 150 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 151 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 Rozsah ("A194"). Vyberte ActiveSheet.Paste End Sub 

Riešenie

Úplná logika nie je jasná. Práve som "upravil" vaše makro, aby ste mohli pochopiť zmeny (hoci celé makro mi môže veľa vylepšiť).

pri spustení makra sa makro opýta, aké číslo chcete hľadať, tam číslo faktúry e; .g. 33629

Ale mám jeden problém ok. nájdete 33629 v sheet2 a skopírujte celý riadok

goto list1 (2) a vložiť vyššie uvedený riadok do riadku, kde je prvá bunka A194 v druhom hárku. ok tak ďaleko.

Ale keď vyberiete iné číslo, na ktoré chcete skopírovať riadok v hárku1 (2). to nie je jasné.

Odporúčam vám, aby ste si svoj pôvodný zošit uložili bezpečne tam, kde ho možno získať.

potom spustite makro a zistite, či je v poriadku. ak je to v poriadku, potom odpovedzte na môj qeustion tučným písmom uvedeným vyššie. makro môže byť ešte viac modifikované.

V makre som dal jeden apostrof na začiatku niektorých riadkov tak, aby neboli funkčné. Tieto riadky môžete odstrániť neskôr, keď pochopíte makro

makro v súčasnej fáze je

 Sub TEST () Dim j Ako Double j = InputBox ("zadajte číslo, ktoré chcete, napr. 33629") "Rozsah (" AM5: AS5 ") Vyberte 'ActiveCell.FormulaR1C1 =" 33629 "Listy (" List2 "). .Find (Čo: = j, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Aktivovať riadky ("6: 6" ) .Vyberte 'Rozsah ("C6"). Aktivovať' Selection.Copy ActiveCell.EntireRow.Copy Pracovné hárky ("sheet1 (2)") Vyberte rozsah ("A194"). 

Poznámka

Vďaka venkat1926 za tento tip na fóre.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy