Makro Untuk Menyisipkan Lembar Kerja - Tips Excel

Daftar Isi

"Stuck in NJ" mengajukan pertanyaan minggu ini:

Saya membuat buku kerja Excel yang berisi bagan angka penjualan. Lembar kerja Excel pertama sesuai dengan wilayah penjualan pertama di perusahaan (mis. FL01.) Nama tab lembar kerja (serta sel A1) adalah nomor wilayah penjualan FL01. Data yang menggerakkan bagan ada di sebelah kanan (di luar rentang yang dapat dicetak yang saya tetapkan) dan diisi dari buku kerja excel lain menggunakan VLOOKUP dengan nomor wilayah penjualan FL01 di sel A1 sebagai kunci pencarian. Saya perlu menambahkan ke buku kerja 76 lembar kerja yang identik (satu untuk setiap wilayah penjualan) sedemikian rupa sehingga nama tab setiap lembar dan sel A1 sama dengan nomor wilayah penjualan berturut-turut (mis. FL01, FL02, LK01, LK02.) Bagaimana cara melakukannya di cara otomatis?

Ini mudah dilakukan dengan makro VBA, tetapi izinkan saya menutupi tip untuk melakukan ini secara manual. Setelah Anda menyiapkan lembar dengan pemformatan dan rentang cetak, Anda dapat dengan mudah menggandakan lembar dengan mengklik kanan pada tab untuk lembar itu. Dari menu yang muncul, pilih Pindahkan atau Salin. Dari kotak dialog Pindahkan atau Salin, pilih "(pindah ke akhir)" dan centang kotak "Buat Salinan", lalu klik OK. Salinan lembar Anda dengan pemformatan akan ditambahkan sebagai lembar kerja baru di buku kerja Anda. (Untuk mempercepat proses ini, tahan tombol Ctrl sambil menyeret tab lembar kerja ke kanan.) Anda biasanya ingin mengganti nama lembar. Klik kanan tab baru, pilih ganti nama, dan ketik nama yang bermakna.

Agar makro Excel berfungsi, itu membutuhkan daftar wilayah. Sebelum Anda menulis makro, sisipkan lembar baru di buku ini bernama Data. Di Sel A1, masukkan wilayah penjualan ke-2 (FL02 dalam contoh Anda). Lanjutkan memasukkan semua wilayah penjualan di kolom A. Jangan biarkan baris kosong.

Sisipkan makro baru dan salin kode ini:

Public Sub CopyIt() Sheets("Data").Select ' Determine how many territories are on Data sheet FinalRow = Range("A65000").End(xlUp).Row ' Loop through each territory on the data sheet For x = 1 To FinalRow LastSheet = Sheets.Count Sheets("Data").Select ThisTerr = Range("A" & x).Value ' Make a copy of Fl01 and move to end Sheets("FL01").Copy After:=Sheets(LastSheet) ' rename the sheet and set A1 = to the territory name Sheets(LastSheet + 1).Name = ThisTerr Sheets(ThisTerr).Select Range("A1").Value = ThisTerr Next x End Sub

Makro menggunakan perintah Sheets (). Copy yang melakukan hal yang sama seperti mengklik Pindahkan atau Salin secara manual. Sebelum melakukan setiap salinan, saya mengetahui jumlah lembar dengan menggunakan properti Sheets.Count. Saya tahu jika ada 56 lembar dan saya memasukkan lembar baru, itu akan direferensikan sebagai Sheets (57). Saya merasa agak tidak terduga untuk menebak bagaimana Excel akan memberi nama sheet baru, jadi saya menggunakan nomor indeks numerik untuk mengidentifikasi sheet. Setelah saya mengganti nama sheet baru dengan "Sheets (LastSheet + 1) .Name = ThisTerr", saya kemudian dapat beralih kembali ke metode pilihan saya untuk merujuk ke sheet dengan menggunakan namanya.

Perhatikan bahwa daftar wilayah tidak boleh mengandung FL01 dalam daftar. Mencoba mengganti nama salinan dari FL01 dengan nama yang sama akan menyebabkan kesalahan di makro.

Artikel yang menarik...