Bagaimana Membuat Makro Cari, Salin, & Tampal?

Isu

Inilah yang saya mahu buat. Saya mempunyai lembaran kerja dengan data pelanggan secara berturut-turut dan saya juga mempunyai lembaran kerja dengan invois Saya mahu auto mengisi dengan maklumat pelanggan dari lembaran kerja data.

Saya ingin membina makro yang akan mencari nombor rujukan saya beritahu dan menyalin baris dengan data pelanggan ke lembaran kerja invois di mana saya akan tarik setiap bidang yang diperlukan ke invois (yang akan saya lakukan sendiri).

Saya membina makro yang mencari nombor rujukan, memilih baris, dan menyalin dan menyusun baris ke dalam lembaran kerja yang lain. Masalah saya adalah apabila saya pergi untuk memasukkan nombor rujukan baru ke dalam kotak carian kecil saya membuatnya masih mencari nombor rujukan saya setup makro dengan dan rujukan hanya baris inital saya setup makro withs data :(

Saya harap saya dapat memberitahu:

Cari nombor rujukan, yang saya salin nombor rujukan dan tampalkannya pada carian pada lembaran kerja yang lain, dan kemudian saya menekan ruang shift untuk memilih dan menyalin data dan menampalnya ke lembaran kerja yang lain. Ia terus merujuk kepada julat inital dan nombor rujukan.

Tolong bantu.

Inilah yang saya ada setakat ini. Saya jenis noob. Semua tatal aktif pada akhirnya ialah saya menatal dan menampal makro di bawah invois saya supaya saya boleh tarik data kemudian.

 Pilih "CellsFind" (Apa: = "33629", Selepas: = ActiveCell, LookIn: = xlFormulas, LookAt _: = xlPart, SearchDrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False, SearchFormat: = False) .Activate Rows ("6: 6") Select Range ("C6"). Pilih 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 ActiveWindow .ScrollRow = 33 ActiveWindow.ScrollRow = 36 ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollRow = 40 ActiveWindow.ScrollRow = 42 Akta 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 = 58 64 ActiveWindow.ScrollRow 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 = 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 = 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 = 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 = 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 = 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 = 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 Range ("A194"). Pilih Sub Akhir End ActiveSheet.Paste 

Penyelesaian

Logik penuh tidak jelas. Saya hanya "mengubahsuai" makro anda supaya anda dapat memahami perubahan (walaupun keseluruhan makro boleh saya tweak banyak).

apabila anda memulakan makro, makro akan menanyakan nombor nombor yang ingin anda cari jenis di sana nombor invois e; .g. 33629

Tetapi saya mempunyai satu masalah ok. anda dapati 33629 dalam sheet2 dan menyalin keseluruhan baris

goto sheet1 (2) dan tampal baris di atas dalam baris di mana sel pertama adalah A194 pada helaian kedua. ok setakat ini.

Tetapi apabila anda memilih nombor lain di mana anda mahu menyalin baris dalam sheet1 (2). ini tidak jelas.

Saya cadangkan anda menyimpan buku kerja asal anda dengan selamat di mana ia boleh diambil.

kemudian jalankan makro dan lihat sama ada ia ok. jika ia ok maka jawab qeustion saya dalam undelined berani di atas. makro masih boleh diubah lagi.

Dalam makro, saya telah meletakkan satu apostrophe pada permulaan beberapa baris supaya mereka akan beroperasi. Anda boleh memadam baris ini kemudian apabila anda memahami makro

makro pada peringkat sekarang adalah

 Sub TEST () Dim j Sebagai Double j = InputBox ("taipkan nombor yang anda mahu contohnya 33629") 'Julat ("AM5: AS5") Pilih' ActiveCell.FormulaR1C1 = "33629" Sheets ("Sheet2" . Cari, cari: = xlByRows, SearchDirection: = xlNext, MatchCase: = False, SearchFormat: = False). 'Rows' ("6: 6" Pilih "Range (" C6 "). Aktifkan 'Selection.Copy ActiveCell.EntireRow.Copy Worksheets (" sheet1 (2) ") Pilih Range (" A194 "). 

Catatan

Terima kasih kepada venkat1926 untuk tip ini di forum.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama