การล็อกเซลล์ คอลัมน์ และแถวใน Excel ให้คุณอิสระในการปกป้องข้อมูลของคุณ หลังจากปกป้องเวิร์กชีต ตามค่าเริ่มต้น ทุกเซลล์จะถูกล็อก หมายความว่าพวกเขาไม่สามารถแก้ไขได้ แต่การปกป้องเซลล์ที่แตกต่างกันให้คุณอิสระทำงานบนเซลล์ที่ไม่ได้รับการปกป้อง ที่นี่ คุณจะเห็นเทคนิค Excel ที่แตกต่างกันสำหรับการล็อกและปลดล็อกเซลล์ มี ฟังก์ชัน Excel เริ่มต้นมากมายที่เราสามารถใช้สร้างสูตร อีกทั้ง การล็อกเซลล์จะไม่มีผลหากคุณไม่ปกป้องเวิร์กชีต บทความนี้จะแสดงให้คุณเห็น 6 ตัวอย่างที่เหมาะสมในการ ล็อกและปลดล็อกเซลล์ ใน Excel โดยใช้ VBA
ดาวน์โหลดสมุดงานต่อไปนี้เพื่อฝึกฝนด้วยตนเอง
6 ตัวอย่างที่เหมาะสมในการล็อกและปลดล็อกเซลล์ใน Excel โดยใช้ VBA
Excel VBA สามารถทำงานที่ซับซ้อนได้อย่างง่ายดาย คุณเพียงต้องใส่โค้ดหรือเขียนโค้ดหนึ่ง ในบทความนี้ เราจะใช้ VBA เพื่อ ล็อก และ ปลดล็อกเซลล์ ใน Excel เพื่อเป็นตัวอย่าง เราจะใช้ชุดข้อมูลตัวอย่าง ตัวอย่างเช่น ชุดข้อมูลต่อไปนี้มี Salesman, Product, และ Net Sales ในช่วงเซลล์ B4:D10 ที่นี่ เราจะล็อกช่วงเซลล์ที่แตกต่างกัน

1. ล็อกเซลล์ทั้งหมดในเวิร์กชีต Excel ด้วย VBA
ในตัวอย่างแรก คุณจะเห็นวิธีล็อกเซลล์ทั้งหมดในเวิร์กชีต Excel ดังนั้น ทำตามขั้นตอนด้านล่างเพื่อดำเนินการ
ขั้นตอน:
- ก่อนอื่น ไปที่ Developer ➤ Visual Basic

- ผลลัพธ์ หน้าต่าง VBA จะโผล่ขึ้นมา
- ตอนนี้ เลือก Insert ➤ Module

- ผลลัพธ์ กล่องโต้ตอบ Module จะปรากฏ
- ต่อไป คัดลอกโค้ดด้านล่างและวางลงใน กล่อง Module
Sub AllCells() Sheets("All Cells").Cells.Locked = True Sheets("All Cells").Protect End Sub

- บันทึกไฟล์และกดปุ่ม F5 เพื่อรันโค้ด
- ดังนั้น เมื่อคุณพยายามแก้ไขหรือปรับเปลี่ยนเซลล์ใดๆ คุณจะได้กล่องโต้ตอบเตือนเตือนดังที่แสดงด้านล่าง

2. ใช้ Excel VBA สำหรับการล็อกเซลล์เฉพาะเจาะจง
ตอนนี้ เราจะแสดงโค้ดสำหรับการล็อกเซลล์เฉพาะ เราจะแทรกกล่องกาเครื่องหมาย (check box) ที่จะควบคุมการล็อกและปลดล็อก ดังนั้น เรียนรู้ขั้นตอนต่อไปนี้เพื่อดำเนินการ
ขั้นตอน:
- ก่อนอื่น ตั้งชื่อช่วงเซลล์ B4:D10 ว่า Table1

- ต่อไป คลิก Developer ➤ Insert ➤ Check Box

- หลังจากนั้น วางกล่องกาเครื่องหมายที่คุณต้องการ
- จากนั้น คลิกขวาที่ชื่อชีท
- เลือก View Code จากเมนูบริบท

- ใส่โค้ดด้านล่างในกล่องโต้ตอบที่โผล่ขึ้นมา
Private Sub CheckBox1_Click() Range("Table1").Select On Error Resume Next If CheckBox1.Value = True Then Selection.Locked = False MsgBox Selection.Address & " Cell Range is Unlocked", vbInformation, "ExcelDemy" Else Selection.Locked = True MsgBox Selection.Address & " Cell Range is Locked", vbInformation, "ExcelDemy" End If End Sub

- บันทึกไฟล์และรันโค้ดโดยกด F5 key
- ดังนั้น การติ๊กกล่องจะปลดล็อกเซลล์และคืนกล่องโต้ตอบตามที่แสดงด้านล่าง

- เช่นเดียวกัน การยกเลิกติ๊กกล่องจะล็อกเซลล์

3. ล็อกเฉพาะเซลล์ที่มีสูตรโดยใช้ VBA
อย่างไรก็ตาม เราสามารถล็อกเฉพาะเซลล์ที่มีสูตรได้ ดังนั้น ทำตามกระบวนการด้านล่างเพื่อล็อกเซลล์ที่มีสูตร
ขั้นตอน:
- ก่อนอื่น ได้ กล่อง Module โดยทำตามขั้นตอนในตัวอย่าง 1
- พิมพ์โค้ดด้านล่างในกล่อง
Sub LockCellsWithFormulas() For Each Rng In ActiveSheet.Range("B5:D10") If Rng.HasFormula Then Rng.Locked = True Else Rng.Locked = False End If Next Rng ActiveSheet.Protect "111" End Sub

- หลังจากนั้น คลิกปุ่ม RunSub เพื่อรันโค้ด
- ที่นี่เราเห็นว่าโค้ดนี้จะล็อกเซลล์ที่เราใส่สูตร
- ตัวอย่างเช่น D7 มีสูตร ดังนั้นเราไม่สามารถแก้ไขเซลล์นี้ได้

4. ล็อกเวิร์กชีตทั้งหมดยกเว้นเซลล์บางส่วน
นอกจากนี้ เราสามารถล็อกเวิร์กชีตทั้งหมดยกเว้นเซลล์บางส่วนที่เราจะระบุ ดูโค้ดด้านล่างที่ B5:D10 เป็นช่วงที่เราต้องการให้ปลดล็อก ส่วนที่เหลือของเวิร์กชีตทั้งหมดจะถูกล็อกหลังจากรันโค้ด
Sub WorksheetExceptFewCells() Dim wb As Workbook Set wb = ActiveWorkbook wb.Sheets("Entire Worksheet Except Few").Range("B5:D10").Locked = False wb.Sheets("Entire Worksheet Except Few").Protect passowrd = "111" End Sub

5. ล็อกเซลล์หลังจากป้อนข้อมูลใน Excel
อีกครั้ง จำเป็นต้องล็อกเซลล์หลังจากป้อนข้อมูลในช่วงที่ต้องการ ในตัวอย่างนี้ B4:D10 เป็นช่วงที่เราจะป้อนข้อมูล ดังนั้น ทำตามขั้นตอนด้านล่างเพื่อล็อกเซลล์หลังจากป้อนข้อมูลใน Excel
ขั้นตอน:
- ก่อนอื่น คลิกขวาที่ชื่อชีทและเลือก View Code
- ใส่โค้ดต่อไปนี้ในกล่องโต้ตอบ
Dim rg As Range Dim str As String Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Range("B4:D10"), Target) Is Nothing Then Set rg = Target.Item(1) str = rg.Value End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim xg As Range On Error Resume Next Set xg = Intersect(Range("B4:D10"), Target) If xg Is Nothing Then Exit Sub Target.Worksheet.Unprotect Password:="111" If xg.Value <> str Then xg.Locked = True Target.Worksheet.Protect Password:="111" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range("B4:D10"), Target) Is Nothing Then Set rg = Target.Item(1) str = rg.Value End If End Sub

- รันโค้ดโดยกดปุ่ม RunSub หรือ F5 key
- หลังจากนั้น พิมพ์ค่าข้อมูลของคุณในช่วง
- มันจะถูกล็อกโดยอัตโนมัติ
- หากคุณพยายามแก้ไข คุณจะได้กล่องโต้ตอบเตือนเตือนดังที่แสดงด้านล่าง

6. ปลดล็อกเซลล์ใน Excel โดยใช้ VBA
จนถึงตอนนี้ เราอธิบายวิธีล็อกเซลล์แล้ว ตอนนี้ คุณสามารถใช้โค้ดด้านล่างเพื่อปลดล็อกเซลล์ในสมุดงาน Excel
Sub UnlockCells() Sheets("Unlock Cells").Cells.Locked = False Sheets("Unlock Cells").Unprotect End Sub

วิธีล็อกและปลดล็อกเซลล์ใน Excel โดยไม่ใช้ VBA
คุณยังสามารถล็อกและปลดล็อกเซลล์โดยไม่ใช้ VBA เราสามารถใช้กล่องโต้ตอบ Format Cells เพื่อล็อก/ปลดล็อกเซลล์ คุณต้องติ๊กกล่องสำหรับ Locked หากต้องการล็อกเซลล์ คล้ายกัน การยกเลิกติ๊กกล่องจะทำให้ปลดล็อกเซลล์ อีกทั้ง การล็อกเซลล์ของคุณจะไม่มีผลหากคุณไม่ปกป้องเวิร์กชีตหรือสมุดงานของคุณ
ขั้นตอน:
- ก่อนอื่น เลือกช่วงที่คุณต้องการ
- จากนั้น กดปุ่ม Ctrl และ 1 พร้อมกัน
- มันจะคืนกล่องโต้ตอบ Format Cells
- ภายใต้แท็บ Protection ติ๊ก/ยกเลิกติ๊กกล่อง Locked ขึ้นอยู่กับความจำเป็นของคุณ

- หากคุณต้องการปกป้องเวิร์กชีต ไปที่แท็บ Review
- ที่นี่ เลือก Protect Sheet จาก Protect drop-won
- ดังนั้น ชีทจะได้รับการปกป้อง

สรุป
ดังนั้น คุณจะสามารถ ล็อกและปลดล็อกเซลล์ ใน Excel โดยใช้ VBA ตามตัวอย่างที่อธิบายไว้ข้างต้น การล็อกเซลล์บางส่วนใน Excel ให้คุณอิสระในการรักษาความปลอดภัยข้อมูลจากผู้อื่น ช่วยป้องกันการลบโดยไม่ได้ตั้งใจ หรือหยุดผู้อื่นไม่ให้ทำลายข้อมูลของคุณ ใช้งานต่อไป และแจ้งให้เราทราบหากคุณมีวิธีอื่นในการทำภารกิจ ติดตามเว็บไซต์ ExcelDemy สำหรับบทความอื่นๆ อย่าลืมแสดงความคิดเห็น ข้อเสนอแนะ หรือคำถามหากมีในส่วนความคิดเห็นด้านล่าง