Helaian UnProtect VBA

Helaian Tidak Lindungi Excel VBA

Terdapat situasi di mana kita melindungi lembaran kerja kita untuk mengelakkan pengguna daripada memanipulasi lembaran kerja. Semasa melindungi lembaran kerja, kami biasanya mengekalkan kata laluan yang sama. Dalam artikel ini, kami akan menunjukkan kepada anda cara untuk tidak melindungi helaian menggunakan pengekodan VBA.

Contoh

Anda boleh memuat turun Templat Sheet Excel Unprotect VBA ini di sini - Templat Excel Sheet Unprotect VBA ini

Contoh # 1

Melindungi helaian adalah 99% lebih mudah daripada melindunginya, kami hanya memerlukan kata laluan untuk melindung lembaran kerja.

Perkara pertama yang perlu kita lakukan ialah menyebut nama lembaran kerja yang tidak akan dilindungi. Sebagai contoh, jika anda ingin melindungi lembaran yang dinamakan sebagai "Data Jualan", maka kod VBA anda seharusnya seperti ini.

Lembaran kerja ("Data Jualan")

Kemudian akses kaedah Unprotect.

Seperti yang dapat kita lihat dalam gambar di atas, kita tidak melihat senarai IntelliSense apa pun untuk membantu kita. Ini menjadikan pekerjaan lebih sukar, terutama bagi pelajar baru.

Untuk mengatasinya saya biasanya bergantung pada menyatakan pemboleh ubah VBA sebagai "Lembaran Kerja".

Kod:

 Sub Unpretect_Contoh1 () Dim Ws Sebagai Lembaran Kerja Akhir Sub 

Sekarang tetapkan pemboleh ubah yang dinyatakan ke helaian masing-masing.

Kod:

 Sub Unpretect_Example1 () Dim Ws Sebagai Set Lembaran Kerja Ws = Lembaran Kerja ("Data Jualan") Sub Akhir 

Sekarang gunakan pemboleh ubah untuk mengakses ke semua sifat dan kaedah pemboleh ubah yang dinyatakan.

Seperti yang anda lihat dalam gambar di atas, kita dapat mengakses semua sifat dan kaedah. Pilih kaedah "Unprotect" dari senarai IntelliSense.

Ia meminta kata laluan untuk melindungi Helaian. Saya telah menetapkan kata laluan sebagai "Excel @ 1234" jadi saya akan memberikan kata laluan yang sama.

Ini akan melindungi lembaran kerja yang dinamakan sebagai "Data Penjualan".

Kod:

 Sub Unpretect_Example1 () Dim Ws Sebagai Set Lembaran Kerja Ws = Lembaran Kerja ("Data Jualan") Ws.Unprotect Password: = "Excel @ 1234" End Sub 

Sekiranya tidak ada kata laluan maka kita hanya perlu menggunakan metode "Unprotect" dan mengabaikan parameter "Password".

Kod:

 Sub Unpretect_Example1 () Dim Ws Sebagai Worksheet Set Ws = Worksheets ("Data Penjualan") 'Tukar nama lembaran kerja mengikut keperluan anda Ws.Unprotect' Sekiranya tidak ada kata laluan, hanya lulus kaedah "UnProtect" End Sub 

Sekiranya ada kata laluan maka kita perlu memasukkan kata laluan dalam tanda petik dua kali. Kata laluan peka huruf besar kecil, jadi ingatlah dengan teliti.

Contoh # 2 - Lindungi Semua Helaian Excel dengan Hanya Satu Klik

Kami telah melihat bagaimana untuk tidak melindungi lembaran kerja tertentu. Bayangkan anda mempunyai banyak lembaran kerja dan semua lembaran kerja dilindungi dengan kata laluan yang sama, maka kita tidak dapat menyimpan kod untuk setiap lembaran kerja secara berasingan.

Dalam kes-kes ini, kita perlu menggunakan gelung untuk mencari koleksi objek lembaran kerja dan melindunginya dengan mudah.

Kod di bawah ini akan melingkari semua lembaran kerja dan melindung helaian.

Kod:

Sub Unpretect_Example2 () Dim Ws Sebagai Lembaran Kerja Untuk Setiap Ws dalam ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Tukar kata laluan seperti yang anda nyatakan semasa melindunginya. Sub Akhir Ws Selanjutnya

Contoh # 3 - Situasi Khas

Situasi 1: Pernah membayangkan bila kata laluan yang diberikan salah. Apabila kata laluan yang diberikan salah, kita akan mendapat 1004: Ralat Masa Jalankan.

Untuk mengatasi kesalahan ini kita dapat menggunakan pilihan "On Error GoTo Label". Kod di bawah adalah contoh yang sama.

Kod:

Sub Unpretect_Example3 () Dim Ws Sebagai Lembaran Kerja Untuk Setiap Ws Di ActiveWorkbook.Wheets Works On Error GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Tukar kata laluan seperti yang anda nyatakan sambil melindungi mereka. Errormessage: MsgBox "Kata Laluan Salah" Next Ws End Sub

Kod di atas akan menunjukkan kotak mesej yang bagus yang mengatakan "Kata Laluan Salah".

Situasi 2: Apabila lembaran dilindungi tanpa kata laluan dan jika anda memberikan kata laluan rawak, ia masih akan melindungi lembaran kerja tanpa menunjukkan sebarang kesalahan.

Situasi 3: Apabila lembaran dilindungi kata laluan tetapi jika anda tidak memberikan kata laluan, VBA akan muncul sebagai kotak input kata laluan untuk memasukkan kata laluan.

Di kotak input di atas, kita perlu memasukkan kata laluan kita untuk melindung lembaran kerja. Sekiranya anda mengklik pada butang Batal, ia akan keluar dari subproses VBA tanpa menunjukkan apa-apa kecuali jika ada kotak mesej pengguna.