Lembaran Tidak Melindungi VBA - Gunakan Kod VBA untuk Melindungi Helaian Excel

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

Contoh # 1

Melindungi helaian adalah 99% lebih sederhana daripada melindunginya. Kami hanya memerlukan kata laluan untuk melindungi lembaran kerja.

Perkara pertama yang perlu kita lakukan ialah menyebut nama lembaran kerja yang tidak akan dilindungi. Contohnya, jika anda ingin melindung helaian bernama "Data Jualan", maka kod VBA anda seharusnya seperti ini.

Lembaran kerja ("Data Jualan")

Kemudian akses kaedah Unprotect.

Seperti yang dapat kita lihat pada 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 semua sifat dan kaedah pemboleh ubah yang dinyatakan.

Seperti yang anda lihat dalam gambar di atas, kami 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 bernama "Data Jualan".

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 "Lindungi" dan abaikan parameter "Kata Laluan".

Kod:

Sub Unpretect_Example1 () Dim Ws Sebagai Worksheet Set Ws = Worksheets ("Data Penjualan") 'Ubah 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 di ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Tukar kata laluan seperti yang anda nyatakan sambil melindunginya. Sub Ws Akhir Seterusnya

Contoh # 3 - Situasi Khas

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

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 yang salah."

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

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

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

Artikel menarik...