Зиак үдшийн мэнд Exceler-үүдээ. Тайлан баланс, валентин, цагаан сар гээд толгой өндийх завгүй байцгаана уу 🙂 🙂 🙂 . Миний хувьд ч ялгаагүй тайлан баланс, цагаан сарын бэлтгэл энээ тэрээ гээд бас л завгүй өдөр хоногууд үргэлжилсээр байна. Цагаан сар өнгөрвөл нэг амс хийх завтай болно доо. Гэхдээ завгүй гээд ор тас алга болмооргүй байгаа учраас өнөөдөр гүрийж байгаад энэ нийтлэлийг орууллаа. Өнөөдрийнхөө нийтлэлээр та бүхэнд “100 АСУУЛТ, 100 ХАРИУЛТ” номонд агуулагдах нэгэн асуултыг хэрхэн шийдсэн тухай танилцуулах болно.
Асуулт
CheckBox буюу чагтан тэмдэглэгээгээр Sheet-ийн хамгаалалтыг яаж удирдах бэ? Надад 4 Sheet-тэй Excel файл байгаа юм. Эхний Sheet-ийг удирдлагын хэсэг болгоод тэрхүү Sheet-нээс үлдсэн 3 Sheet-ийнхээ хамгааалалтыг удирддаг нэг загвар хийх гээд байгаа юм. Жишээлбэл удирдлагын хэсэг байрлаж буй Sheet-нд 3 ширхэг CheckBox байрлах ба аль нэг CheckBox-ийг чеклэх буюу идэвхжүүлэхэд тухайн CheckBox-д харгалзах Sheet хамгаалалтанд ордог, чеклсэн тэмдэглэгээг авах буюу идэвхгүй болгоход хамгаалалтнаас гардаг тийм нэг загварыг яаж хийх талаар зөвлөгөөг өгч болох уу?
EXCEL.mn хариулж байна…
Таны энэ асууж буй загварчлалын асуудлыг бид VBA кодын тусламжтайгаар л шийдэж чадна. Хэрхэн яаж загварчлах талаар та бүхэн дараах зааврыг дагаарай.
Sheet бэлтгэх
Нэн тэргүүнд бид 4 sheet-тэй Excel файлыг үүсгэнэ. Манай жишээнд Sheet1, Sheet2, Sheet3, Sheet4 гэсэн нэртэй 4 sheet-ийг үүсгэсэн болно.
CheckBox-ийг Sheet-нд оруулж, тохируулах
Developer цэснээс 3 ширхэг CheckBox-ыг үүсгэж, эхний sheet буюу Sheet1 нэртэй хуудасны аль нэг хэсэгт байршуулна. Манай жишээний хувьд дараах мужуудад 3 CheckBox-ыг байршуулсан болно.
CheckBox-ийг Sheet-нд хэрхэн оруулж ирэх талаар та бүхэн “Давхардал ба CheckBox” гэсэн нэртэй нийтлэлээс уншаарай.
CheckBox тус бүрийн Cell link тус бүрийг харгалзан A1, A2, A3 нүднүүдэд холбоно. CheckBox-ийн Cell link-ийг гаргаж ирэхийн тулд CheckBox-ыг идэвхжүүлж, хулганын баруун товчийг дарах замаар Format Control коммандыг өгнө. Үүний үр дүнд Format Control цонх нээгдэнэ.
Format Control цонхноос Control хуудсыг нээж, тус цонхонд байрлах Cell link талбарт тухайн CheckBox-д харгалзах A1, A2, A3 нүдийг зааж өгнө. CheckBox тус бүрд энэхүү тохиргоог хийнэ гэдгийг анхаараарай.
CheckBox-ийн Cell Link-ийг нүдтэй хэрхэн холбох талаар та бүхэн “Давхардал ба CheckBox” гэсэн нэртэй нийтлэлээс уншаарай.
За ингээд удирдлагын sheet буюу Sheet1 хуудсанд хийгдэх CheckBox-ийн тохиргоог хийж дууслаа.
VBA кодчлол
Одоо CheckBox ашиглаж, үлдсэн 3 sheet-ийн хамгаалалтыг яаж удирдах талаар авч үзье.
- Excel программын Visual Basic Editor-ийг нээж, тухайн Excel файлд VBA код бичих шинэ модуль нээнэ.
- Тус модуль дээр дараах VBA кодыг бичиж оруулна.
[php] Sub sheet_2()
If Range("A1") = True Then
Sheets("Sheet2").Protect Password:=123
ElseIf Range("A1") = False Then
Sheets("Sheet2").Unprotect Password:=123
End If
End Sub
Sub sheet_3()
If Range("A2") = True Then
Sheets("Sheet3").Protect Password:=123
ElseIf Range("A2") = False Then
Sheets("Sheet3").Unprotect Password:=123
End If
End Sub
Sub sheet_4()
If Range("A3") = True Then
Sheets("Sheet4").Protect Password:=123
ElseIf Range("A3") = False Then
Sheets("Sheet4").Unprotect Password:=123
End If
End Sub [/php]
Удирдлагын sheet-нд (Sheet1) үүсгэсэн CheckBox-уудийг харгалзах VBA кодтой холбоно. CheckBox1-ээр Sheet2-ийн хамгаалалтын хэсгийг удирдах гэж байгаа бол:
- CheckBox1-ийг идэвхжүүлж, хулганын баруун товчийг дарна.
- Үүсэх цэснээс Assign Macro коммандыг өгнө.
- Assign Macro цонхноос sheet_2 гэсэн VBA кодыг сонгож, OK коммандыг өгснөөр CheckBox1, sheet_2 гэсэн VBA код өөр хоорондоо холбогдох болно.
За ингээд бидний боловсруулсан загвар маань ажиллахад бэлэн болсон. Та бүхэн загварын ажиллагааг туршаад үзээрэй. Жишээлбэл CheckBox1 идэвхтэй байгаа нөхцөлд Sheet2 хамгаалалтанд орсон байна. Эсрэгээрээ идэвхгүй байгаа нөхцөлд Sheet2 хамгаалалтгүй байх болно. Бусад CheckBox-ийн хувьд дээрхтэй адил зарчмаар ажиллах болно.
Сэтгэгдэл үлдээх
OK, баярлалаа.