ไปยังเนื้อหาหลัก

วิธีตั้งรหัสผ่านเพื่อป้องกันแผ่นงานแต่ละแผ่นโดยผู้ใช้ใน Excel

ผู้เขียน: Xiaoyang แก้ไขล่าสุด: 2022-09-23

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


เพื่อป้องกันแผ่นงานแต่ละแผ่นและจำกัดการเข้าถึงแผ่นงานโดยผู้ใช้ โปรดใช้รหัส VBA ด้านล่าง:

1. เปิดสมุดงานใหม่ และสร้างแผ่นงานใหม่ที่ชื่อว่า "หลัก" ดูภาพหน้าจอ:

2. จากนั้นกด Alt + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน ดับเบิลคลิก สมุดงานนี้ จากด้านซ้าย โครงการ -VBAProject เพื่อเปิดโมดูลโค้ดเปล่า จากนั้นคัดลอกและวางโค้ด VBA ต่อไปนี้ลงในหน้าต่างโค้ด ดูภาพหน้าจอ:

รหัส VBA: ตั้งรหัสผ่านเพื่อป้องกันแผ่นงานแต่ละแผ่นโดยผู้ใช้

Option Explicit
Dim gUserName As String
Dim gUserPass As String
Private Sub Workbook_Open()
'Updateby ExtendOffice
Dim xWShs As Sheets
Dim xWSh As Worksheet
Dim xUserName As String
Dim xPass As String
Dim xBolH As Boolean
GTINPUT:
xUserName = InputBox("Enter the user name")
If TypeName(xUserName) = "String" Then
    If xUserName = "" Then
        Exit Sub
    End If
End If
xUserName = LCase(xUserName)
xPass = InputBox("User name:" & xUserName & Chr(13) & Chr(10) & "Enter the password:")
If TypeName(xPass) = "String" Then
    If xPass = "" Then
    MsgBox "The password is incorrect, please enter the user name and password again."
    GoTo GTINPUT
    End If
Else
    MsgBox "The password is incorrect, please enter the user name and password again."
    GoTo GTINPUT
End If
Set xWShs = Worksheets
xBolH = False
For Each xWSh In Worksheets
    If xWSh.Name = xUserName Then
    xBolH = True
    Exit For
    End If
Next
If xBolH Then
Set xWSh = xWShs(xUserName)
On Error GoTo GTINPUT2
xWSh.Unprotect (xPass)
xWSh.Visible = True
xWSh.Activate
Else
Set xWSh = xWShs.Add
xWSh.Name = xUserName
xWSh.Activate
End If
gUserName = xUserName
gUserPass = xPass
Exit Sub
GTINPUT2:
    MsgBox "The password is incorrect, please enter the user name and password again."
    GoTo GTINPUT
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xWSh As Worksheet
On Error Resume Next
Set xWSh = Worksheets(gUserName)
xWSh.Protect Password:=gUserPass, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
For Each xWSh In Worksheets
    If xWSh.Name <> "Main" Then
        xWSh.Visible = xlSheetVeryHidden
    End If
Next xWSh
ActiveWorkbook.Save
End Sub

3. จากนั้นวางเคอร์เซอร์ที่ส่วนท้ายของ สมุดงานย่อยส่วนตัว_Open() สคริปต์และกด F5 คีย์เพื่อเรียกใช้รหัสนี้ ตอนนี้ ในกล่องข้อความที่ปรากฏขึ้น ให้ป้อนชื่อผู้ใช้ที่คุณต้องการสร้างชีตสำหรับผู้ใช้รายนี้ ดูภาพหน้าจอ:

4. จากนั้นคลิก OK ในกล่องข้อความต่อไปนี้ ให้ป้อนรหัสผ่านเพื่อป้องกันแผ่นงานนี้ ดูภาพหน้าจอ:

5. ไปที่การคลิก OK และแผ่นงานใหม่ที่ตั้งชื่อด้วยชื่อผู้ใช้จะถูกสร้างขึ้นพร้อมกัน และคุณสามารถสร้างข้อมูลสำหรับผู้ใช้นั้นได้ตามต้องการ ดูภาพหน้าจอ:

6. ทำซ้ำขั้นตอนที่ 3 – ขั้นตอนที่ 5 ข้างต้นสำหรับการสร้างแผ่นงานอื่นทีละแผ่นที่คุณต้องการใช้

7. หลังจากสร้างแผ่นงานแล้ว ให้บันทึกเวิร์กบุ๊กปัจจุบันโดยคลิก เนื้อไม่มีมัน > บันทึกเป็น., ใน บันทึกเป็น กล่องโต้ตอบ ระบุชื่อไฟล์แล้วเลือก สมุดงานที่เปิดใช้งานแมโคร Excel (* .xlsm) รูปแบบจากไฟล์ บันทึกเป็นชนิด รายการแบบเลื่อนลงดูภาพหน้าจอ:

8. จากนั้นคลิกปุ่มบันทึกเพื่อบันทึกไฟล์นี้

9. จากนั้นปิดเวิร์กบุ๊กแล้วเปิดใหม่อีกครั้ง จากนั้นคลิก เปิดใช้งานเนื้อหา ที่ด้านบนของแถบสูตรเพื่อเปิดใช้งานรหัส ดูภาพหน้าจอ:

10. ตอนนี้กล่องข้อความจะปรากฏขึ้นเพื่อเตือนให้คุณป้อนชื่อผู้ใช้และรหัสผ่านเพื่อเปิดแผ่นงานเฉพาะโดยผู้ใช้บางคน

11. ในที่สุด เมื่อส่งเวิร์กบุ๊กนี้ไปยังผู้ใช้รายอื่น คุณควรส่งชื่อผู้ใช้และรหัสผ่านไปยังผู้ใช้ พวกเขาจะเปิดและแก้ไขแผ่นงานของตนเองเท่านั้น และไม่มีสิทธิ์ดูแผ่นงานอื่น


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

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

  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ และการเก็บรักษาข้อมูล แยกเนื้อหาของเซลล์ รวมแถวที่ซ้ำกันและผลรวม / ค่าเฉลี่ย... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แทรกสูตรที่ชื่นชอบและรวดเร็ว, ช่วงแผนภูมิและรูปภาพ; เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • การจัดกลุ่มตาราง Pivot ตาม จำนวนสัปดาห์วันในสัปดาห์และอื่น ๆ ... แสดงปลดล็อกเซลล์ที่ถูกล็อก ด้วยสีที่ต่างกัน เน้นเซลล์ที่มีสูตร / ชื่อ...
kte แท็บ 201905
  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How would you then allow for an admin user to see all of those password protected sheets?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations