Note: The other languages of the website are Google-translated. Back to English

วิธีล็อคหรือป้องกันเซลล์หลังจากป้อนข้อมูลหรือป้อนข้อมูลใน Excel

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

ล็อคหรือป้องกันเซลล์หลังจากป้อนข้อมูลหรือป้อนข้อมูลด้วยรหัส VBA


ล็อคหรือป้องกันเซลล์หลังจากป้อนข้อมูลหรือป้อนข้อมูลด้วยรหัส VBA

ตัวอย่างเช่นช่วงของเซลล์ว่างบางช่วงคือ A1: F8 โปรดทำดังนี้เพื่อล็อคเซลล์เหล่านี้หลังจากป้อนข้อมูลใน Excel

1. โปรดปลดล็อกช่วงนี้ก่อนเลือกเซลล์และคลิกขวาจากนั้นเลือก จัดรูปแบบเซลล์ ในเมนูคลิกขวาและใน จัดรูปแบบเซลล์ กล่องโต้ตอบยกเลิกการเลือก ล็อค ภายใต้ การป้องกัน และสุดท้ายคลิกที่ OK ปุ่ม. ดูภาพหน้าจอ:

2 คลิก รีวิว > ป้องกันแผ่นงาน. และระบุรหัสผ่านเพื่อป้องกันแผ่นงานนี้

3. คลิกขวาที่แท็บแผ่นงานเลือก ดูรหัส จากเมนูคลิกขวา จากนั้นคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างรหัส ดูภาพหน้าจอ:

รหัส VBA: ล็อคหรือป้องกันเซลล์หลังจากป้อนข้อมูลหรือป้อนข้อมูล

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

หมายเหตุ: ในรหัส“ A1: F8” คือช่วงที่คุณต้องป้อนข้อมูล และ“ 123” คือรหัสผ่านของแผ่นงานที่มีการป้องกันนี้ โปรดเปลี่ยนตามที่คุณต้องการ

4 กด อื่น ๆ + Q พร้อมกันเพื่อปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

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


บทความที่เกี่ยวข้อง:


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (74)
ได้รับคะแนน 5 จาก 5 · การจัดอันดับ 1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันมีสเปรดชีตที่มีช่วง A3:AN219 ฉันต้องการปกป้องช่วงนี้เมื่อป้อนข้อมูลเสร็จสมบูรณ์ โปรดช่วยฉันในเรื่องนี้ ฉันลองใช้โค้ดด้านบนแล้ว แต่มันใช้ไม่ได้สำหรับฉัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สิ่งนี้ไม่ทำงานเมื่อเปิดไฟล์ excel อีกครั้ง โปรดช่วย
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ลองใช้รหัสนี้แทน: Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRange As Range Set MyRange = Intersect(Range("A1:D100"), Target) ถ้าไม่ใช่ MyRange Is Nothing แล้ว Sheets("Sheet1") ยกเลิกการป้องกันรหัสผ่าน: ="hello" MyRange.Locked = True Sheets("Sheet1").Protect password:="hello" End If End Sub and forget to change range (A1:D100), password (hello) and sheet (Sheet1) name/numbers. ถ้ามันไม่ตรงกับข้างบน :)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับรหัส โปรดแจ้งให้เราทราบวิธีการล็อกเซลล์อัตโนมัติ (คล้ายกับที่คุณระบุ) หลังจากบันทึกไฟล์เท่านั้น
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีครับ ฉันกำลังประสบปัญหากับรหัสเดียวกันในขณะที่ใช้รหัสนี้กับ cobe อื่นใน VBA โปรดแนะนำวิธีแก้ปัญหาให้ฉัน ขอบคุณและขอแสดงความนับถือ Gourav
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน Gourav,
ขออภัยไม่สามารถแก้ปัญหานี้ได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันลองใช้รหัสและดูเหมือนว่าจะใช้งานได้บ้าง อย่างไรก็ตาม อนุญาตให้ฉันลบวันที่ที่ป้อนลงในเซลล์ แต่จะหยุดฉันเมื่อฉันพยายามป้อนอย่างอื่นเท่านั้น มีวิธีป้องกันไม่ให้ข้อมูลถูกลบหรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน สเตซี่
ปัญหาเดียวกันไม่ปรากฏในกรณีของฉัน รหัสป้องกันผู้ใช้จากการป้อนเช่นเดียวกับการลบข้อมูลจากช่วงที่ระบุ คุณจะให้เวอร์ชัน Office ของคุณสำหรับการทดสอบเพิ่มเติมหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สำหรับใครที่อาจจะสะดุดมาที่นี่ตั้งแต่ความเห็นนี้ หากคุณต้องปลดล็อกเวิร์กชีตทุกครั้งที่คุณกรอกข้อมูลในเซลล์ คุณต้องทำก่อน - ปลดล็อกสเปรดชีต - เน้นพื้นที่ของเวิร์กชีตที่โค้ดใช้ทับ - คลิกขวาและไปที่ 'จัดรูปแบบเซลล์' - ไปที่ แท็บขวาสุดที่เรียกว่า 'การป้องกัน' และยกเลิกการเลือกส่วน 'ล็อก' (แม้ว่าจะปรากฏเป็นของแข็งแทนที่จะเป็นเครื่องหมายถูก) หลังจากนั้นคุณจะสามารถป้อนข้อมูลในหลายเซลล์โดยไม่ต้องปลดล็อกทุกครั้ง จำไว้ว่าหากคุณต้องการกลับไปดูเซลล์ที่ถูกล็อกอีกครั้งเพื่อลบหรือแก้ไขข้อมูล คุณอาจต้องทำซ้ำขั้นตอนข้างต้น หวังว่านี่จะช่วยได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันชอบล็อคเฉพาะเซลล์ที่แก้ไข เมื่อฉันป้อนข้อมูลใดๆ ลงในเซลล์ว่าง ฉันต้องล็อกเซลล์ที่แก้ไขให้ล็อกโดยอัตโนมัติ แต่ไม่ใช่เซลล์ว่าง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน คุณศุภชัย
หลังจากใช้รหัสแล้ว เฉพาะเซลล์ที่แก้ไขเท่านั้นที่ถูกล็อกในช่วงที่ระบุ และคุณยังสามารถป้อนข้อมูลลงในเซลล์ว่างในช่วงที่ระบุได้ตามที่คุณต้องการ หลังจากกรอกข้อมูลในเซลล์ว่าง เซลล์จะถูกล็อคโดยอัตโนมัติ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ไม่ มันจะล็อคช่วงทั้งหมดพร้อมกันหลังจากป้อนข้อมูลลงในเซลล์ในช่วง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน คุณประทีป
คุณใช้ Office เวอร์ชันใด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับการเข้ารหัส แต่ฉันมีปัญหาในการวาง 2 รหัสใน 1 แผ่นโปรดช่วยด้วย
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียนแฟร์
ขออภัยไม่สามารถแก้ปัญหานี้ได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
ท่านฉันต้องการล็อคหลังจากป้อนข้อมูลครั้งเดียว!
เช่นเดียวกับที่ฉันกำลังติดตามลูกค้ารายหนึ่งและเขียนสถานะ จากนั้นพนักงานไม่สามารถแก้ไขหรือแก้ไขสิ่งนั้นได้!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
วิธีการในโพสต์นี้สามารถช่วยคุณแก้ปัญหานี้ได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เซลล์ไม่สามารถแก้ไขได้...เกิดอะไรขึ้น ไม่เข้าใจ ช่วยด้วย
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
ในตอนแรก คุณต้องตั้งค่าเซลล์ที่ระบุเป็น Unlocked for editig จากนั้นให้ป้องกันเวิร์กชีต และสุดท้ายใช้สคริปต์ VBA
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มันต้องเข้ารหัส?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Hi


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


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

Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
Dim xRg เป็นช่วง
Dim xSRg เป็นช่วง
เกี่ยวกับข้อผิดพลาดต่อไป
ตั้งค่า xSRg = ช่วง ("A1:F8")
ตั้งค่า xRg = อินเตอร์เซก (xSRg, เป้าหมาย)
ถ้า xRg ไม่มีอะไร ให้ออกจาก Sub
Target.Worksheet.Unprotect รหัสผ่าน:="123"
xSRg.Locked = จริง
Target.Worksheet.Protect รหัสผ่าน:="123"
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,
มีวิธีล็อคเฉพาะเซลล์มากกว่าทั้งแผ่นหรือไม่? ตัวอย่างเช่น หากผู้ใช้ป้อน "ใช่" ใน A2 ดังนั้น A2 จะล็อกทันทีเพื่อไม่ให้เกิดการเปลี่ยนแปลงใดๆ ฉันยังคงต้องการถ้าคนอื่นยังสามารถแก้ไขเซลล์อื่นได้เช่นกัน ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีสมิ ธ
รหัส VBA ด้านล่างสามารถช่วยคุณแก้ปัญหาได้ โปรดลองและขอขอบคุณสำหรับความคิดเห็นของคุณ

Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
เกี่ยวกับข้อผิดพลาดต่อไป
Target.Worksheet.Unprotect รหัสผ่าน:="123"
Target.Locked = จริง
Target.Worksheet.Protect รหัสผ่าน:="123"
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
อรุณสวัสดิ์

มีวิธีป้องกันไม่ให้ผู้ใช้คลิกขวา "ดูโค้ด" และเห็นรหัสผ่านของผู้ดูแลระบบหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ไม่เป็นไร ฉันเข้าใจ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ยังไง? ฉันไม่เข้าใจ...
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีต้องการความช่วยเหลือ


จริง ๆ แล้วฉันกำลังทำตารางการทำงานสำหรับคนกลุ่มใหญ่ และทุกคนสามารถเข้าถึงแผ่นงานนี้ได้ เพื่อให้พวกเขาสามารถระบุคำขอวันหยุด/วันลาประจำปี ฯลฯ อย่างไรก็ตาม ฉันต้องการจำกัดจำนวนคนที่ลางานสำหรับแต่ละคนเท่านั้น วัน (สูงสุด 5 คำขอเมื่อลา) และหลังจากป้อนคำขอลา 5 รายการในวันนั้นแล้ว ไม่มีบุคคลอื่นใดสามารถกรอกคำขอในวันที่นั้นได้อีกต่อไป


มีรหัส/ฟังก์ชันใดบ้างที่จะคำนวณจำนวนคำขอเฉพาะต่อวัน เมื่อถึงโควตาแล้ว เซลล์อื่นๆ จะถูกบล็อกสำหรับคำขอไม่เกิน ขอบคุณล่วงหน้า
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วันดี,
ยินดีต้อนรับสู่การโพสต์คำถามใด ๆ ในฟอรัมของเรา: https://www.extendoffice.com/forum.html.
คุณจะได้รับการสนับสนุน Excel เพิ่มเติมจากแฟน ๆ มืออาชีพหรือแฟน ๆ ของ Excel คนอื่นๆ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี - โพสต์นี้มีประโยชน์มากและทำงานได้อย่างสมบูรณ์ อย่างไรก็ตาม ตัวกรองของฉันหยุดทำงานเมื่อเซลล์ล็อก มีวิธีแก้ไขปัญหานี้หรือไม่? ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคิม
ขอโทษที่ช่วยเรื่องนี้ไม่ได้ ฟีเจอร์ตัวกรองถูกปิดใช้งานในเวิร์กชีตที่มีการป้องกันตามค่าเริ่มต้น
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณผู้ชาย สิ่งนี้ช่วยชีวิตฉันไว้ : D
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เมื่อฉันออกจากไฟล์ที่กำลังทำงานอยู่และเปิดมันขึ้นมาอีกครั้ง ฉันพบว่าเซลล์ใหม่ไม่ถูกล็อกหลังจากการป้อนข้อมูล มีเพียงเซลล์ล็อกก่อนหน้าเท่านั้นที่พบการล็อก วิธีแก้ปัญหาใด ๆ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี Nazmul
คุณต้องบันทึกเวิร์กบุ๊กเป็นเวิร์กบุ๊กที่ใช้ Excel Macro-Enabled ก่อนปิด
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL