Jak vytvořit makro pro vyhledávání, kopírování a vkládání?

Problém

Tady je to, co chci udělat. Mám pracovní list s údaji o zákaznících podle řádku a mám také pracovní list s fakturou, kterou chci automaticky naplnit s informacemi o zákaznících z datového listu.

Chtěl bych vytvořit makro, které vyhledá referenční číslo, které mu řeknu, a zkopírujte řádek s údaji o zákazníkovi do pracovního listu faktury, kde budu na faktuře vytáhnout každé potřebné pole (které udělám na vlastní účet).

Vytvořil jsem makro, které vyhledá referenční číslo, vybere řádek a zkopíruje a vloží řádek do jiného listu. Můj problém je, když jsem se jít dát nové referenční číslo do mého malého vyhledávacího pole jsem udělal to stále prohledává referenční číslo Nastavím makro s a odkazy pouze inital řádku Nastavím makro s daty :(

Přál bych si to říct:

Vyhledejte referenční číslo, které jsem kopírovat referenční číslo a vložte jej do najít na jiném listu, a pak jsem stisknutí shift prostor vybrat a zkopírovat data a vložte ji do jiného listu. Uvádí odkazy na initalální rozsahy a referenční číslo.

Prosím pomozte.

Tady je to, co mám zatím. Jsem trochu noob. Všechny aktivní svitky na konci mě posouvají a vkládají makro pod mými fakturami, abych mohl data později vytáhnout.

 Rozsah ("AM5: AS5") Vyberte ActiveCell.FormulaR1C1 = "33629" listy ("List2") Vyberte Cells.Find (Co: = "33629", After: = ActiveCell, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Aktivovat řádky ("6: 6") Vyberte rozsah ("C6") Aktivovat Selection.Copy listy ("List1 (2) ") Vyberte ActiveWindow.SmallScroll dolů: = 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 ActiveWindow.ScrollRow = 31 ActiveWindow.ScrollRow = 32 ActiveWindow .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 = 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 = 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 = 149 ActiveWindow.ScrollRow = 150 ActiveWindow.ScrollRow = 151 ActiveWindow.ScrollRow = 150 ActiveWindow.ScrollRow = 151 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 Rozsah ("A194"). Vyberte ActiveSheet.Paste End Sub 

Řešení

Úplná logika není jasná. Právě jsem "modifikoval" vaše makro tak, abyste porozuměli změnám (i když to celé makro můžu hodně vylepšit).

při spuštění makra se makro zeptá, jaké číslo chcete hledat, tam číslo faktury e. .g. 33629

Ale mám jeden problém v pořádku. najdete 33629 v listu2 a zkopírujte celý řádek

goto list1 (2) a vložení výše uvedeného řádku do řádku, kde je první buňka A194 v druhém listu. ok tak daleko.

Pokud však vyberete jiné číslo, na které chcete kopírovat řádek v listu 1 (2). to není jasné.

Doporučuji, abyste si svůj původní sešit nechali v bezpečí, aby ho bylo možné získat.

pak spusťte makro a zjistěte, zda je v pořádku. pokud je to v pořádku, pak odpovězte na můj qeustion tučným písmem uvedeným výše. makro může být ještě více upraveno.

V makru jsem dal jeden apostrof na začátek některých řádků tak, aby nebyly funkční. Tyto řádky můžete odstranit později, jakmile porozumíte makru

makro v současné fázi je

 Sub TEST () Dim j Jako Double j = InputBox ("zadejte číslo, které chcete např. 33629") 'Rozsah ("AM5: AS5") Vyberte' ActiveCell.FormulaR1C1 = "33629" Listy ("List2"). .Find (Co: = j, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Aktivovat řádky ("6: 6" ) .Vyberte "Rozsah (" C6 "). Aktivovat 'Selection.Copy ActiveCell.EntireRow.Copy Listy (" sheet1 (2) ") Vyberte rozsah (" A194 "). 

Poznámka

Díky venkat1926 za tento tip na fóru.

Předchozí Článek Následující Článek

Nejlepší Tipy