Як створити макрос для пошуку, копіювання та вставки?

Проблема

Ось що я хочу зробити. У мене є таблиця з даними клієнта за рядком, і у мене також є робочий лист із рахунком-фактурою, який я хочу автоматично заповнити інформацією про клієнта з таблиці даних.

Я хотів би побудувати макрос, який буде шукати номер посилання, який я розповідаю, і скопіювати рядок із даними клієнта в таблицю рахунків-фактур, де я буду витягувати кожне необхідне поле до рахунку-фактури (що я буду робити самостійно).

Я побудував макрос, який шукає номер посилання, вибирає рядок і копіює і вставляє рядок в інший аркуш. Моя проблема полягає в тому, коли я йду, щоб поставити новий номер посилання в мій маленький вікно пошуку я зробив це все ще шукає номер посилання Я налаштувати макрос і посилання тільки початковий рядок я налаштувати макрос з даними :(

Шкода, що я можу сказати:

Шукайте номер посилання, який я копіюю номер посилання і вставте його в знайти на іншому аркуші, а потім я натискаю клавішу перемикання, щоб вибрати і скопіювати дані і вставити його в інший аркуш. Він продовжує посилатися на початкові діапазони та номер посилання.

Будь ласка, допоможіть.

Ось що я до сих пір. Я як ніби. Всі активні прокрутки в кінці мені прокручування і вставки макросів під мої рахунки, щоб я міг витягти дані пізніше.

 Діапазон ("AM5: AS5") Виберіть ActiveCell.FormulaR1C1 = "33629" Листи ("Sheet2"). Виберіть Cells.Find (Що: = "33629", Після: = ActiveCell, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False). Активуйте рядки ("6: 6"). Виберіть Діапазон ("C6"). Виберіть 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 .ScrollRow = 33 ActiveWindow.ScrollRow = 36 ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollRow = 40 ActiveWindow.ScrollRow = 42 Закон iveWindow.ScrollRow = 45 ActiveWindow.ScrollRow = 47 ActiveWindow.ScrollRow = 49 ActiveWindow.ScrollRow = 54 ActiveWindow.ScrollRow = 55 ActiveWindow.ScrollRow = 56 ActiveWindow.ScrollRow = 57 ActiveWindow.ScrollRow = 58 ActiveWindow.ScrollRow = 61 ActiveWindow.ScrollRow = 62 ActiveWindow.ScrollRow = 63 ActiveWindow.ScrollRow = 64 ActiveWindow.ScrollRow = 65 ActiveWindow.ScrollRow = 72 ActiveWindow.ScrollRow = 73 ActiveWindow.ScrollRow = 74 ActiveWindow.ScrollRow = 75 ActiveWindow.ScrollRow = 76 ActiveWindow.ScrollRow = 77 ActiveWindow.ScrollRow = 82 ActiveWindow.ScrollRow = 83 ActiveWindow.ScrollRow = 84 ActiveWindow.ScrollRow = 85 ActiveWindow.ScrollRow = 87 ActiveWindow.ScrollRow = 90 ActiveWindow.ScrollRow = 91 ActiveWindow.ScrollRow = 93 ActiveWindow.ScrollRow = 94 ActiveWindow.ScrollRow = 95 = 98 ActiveWindow.ScrollRow = 99 ActiveWindow.ScrollRow = 102 ActiveWindow.ScrollRow = 104 ActiveWindow.ScrollRow = 106 ActiveWindow.ScrollRow = 107 = 112 ActiveWindow.ScrollRow = 115 ActiveWindow.ScrollRow = 117 ActiveWindow.ScrollRow = 118 ActiveWindow.ScrollRow = 119 ActiveWindow.ScrollRow = 120 = 125 ActiveWindow.ScrollRow = 126 ActiveWindow.ScrollRow = 127 ActiveWindow.ScrollRow = 128 ActiveWindow.ScrollRow = 129 ActiveWindow.ScrollR ow = 130 ActiveWindow.ScrollRow = 131 ActiveWindow.ScrollRow = 134 ActiveWindow.ScrollRow = 135 ActiveWindow.ScrollRow = 136 ActiveWindow.ScrollRow = 137 ActiveWindow.ScrollRow = 139 ActiveWindow.ScrollRow = 141 ActiveWindow. ScrollRow = 142 ActiveWindow.ScrollRow = 143 ActiveWindow.ScrollRow = 146 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 Діапазон ("A194"). Виберіть ActiveSheet.Paste End Sub 

Рішення

Повна логіка не ясна. Я тільки що "змінив" ваш макрос, так що ви можете зрозуміти зміни (хоча весь макрос може змінити багато).

при запуску макросу макрос запитає, який номер ви хочете знайти там, номер рахунка-фактури e; .g. 33629

Але у мене одна проблема нормально. ви знайдете 33629 в аркуші2 і скопіюйте весь рядок

goto sheet1 (2) і вставляють вищезазначений рядок у рядок, де перша клітина є A194 у другому аркуші. гаразд поки що.

Але при виборі іншого числа, де ви хочете скопіювати рядок в аркуші1 (2). це не ясно.

Я пропоную вам зберегти оригінальну робочу книгу безпечною, де її можна отримати.

потім запустіть макрос і перевірте, чи це нормально. якщо це нормально, то відповідь на мій qeustion в напівжирному неофіційному вище. макрос може бути ще більш модифікованим.

У макросі я поставив одну апостроф на початку деяких рядків, так що вони не будуть працювати. Ви можете видалити ці рядки пізніше, як тільки ви зрозумієте макрос

макрос на сучасному етапі

 Sub TEST () Dim j Як подвійний j = InputBox ("введіть потрібний номер, наприклад, 33629") 'Діапазон ("AM5: AS5"). Виберіть' ActiveCell.FormulaR1C1 = "33629" Листи ("Sheet2"). .Find (Що: = j, LookIn: = xlFormulas, LookAt _: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Активувати рядки ("6: 6") Вибрати діапазон ("C6"). Активувати 'Selection.Copy ActiveCell.EntireRow.Copy Worksheets ("лист1 (2)"). Вибрати діапазон ("A194"). 

Примітка

Завдяки venkat1926 за цей відгук на форумі.

Попередня Стаття Наступна Стаття

Кращі Поради