Xin giúp đỡ về protect sheet cho nhiều sheet một lúc (1 người xem)

  • Thread starter Thread starter diemdiem
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

diemdiem

Thành viên hoạt động
Tham gia
23/11/10
Bài viết
148
Được thích
7
Xin chào các anh chị trên gpe, em có 1 file xls, trong đó có nhiều sheet, theo yêu cầu chung của nhà trường, em phải protect các sheet này theo một vùng nhất định:
- Về cột: từ A1:D65536
- Về dòng: Từ A1:IV5
Mục đích là để Gv không thể can thiệp được vào mã học sinh, vì khi dùng file này để ghép điểm vào chương trình sẽ lấy điểm theo mã của học sinh.
Nếu như em protect từng sheet (trường em có 34 lớp học) thì sẽ phải mất rất nhiều thời gian, Rất mong các anh chị trên diễn đàn giúp đỡ. Em chân thành cám ơn.
 

File đính kèm

Xin chào các anh chị trên gpe, em có 1 file xls, trong đó có nhiều sheet, theo yêu cầu chung của nhà trường, em phải protect các sheet này theo một vùng nhất định:
- Về cột: từ A1:D65536
- Về dòng: Từ A1:IV5
Mục đích là để Gv không thể can thiệp được vào mã học sinh, vì khi dùng file này để ghép điểm vào chương trình sẽ lấy điểm theo mã của học sinh.
Nếu như em protect từng sheet (trường em có 34 lớp học) thì sẽ phải mất rất nhiều thời gian, Rất mong các anh chị trên diễn đàn giúp đỡ. Em chân thành cám ơn.

Bạn thử 2 thủ tục này xem thế nào. Nên gán phím tắt cho macro, khi nào cần thì dùng phím tắt để thao tác
Mình chỉ khóa thử vùng [a1:d100] thôi, nếu cần thì bạn thếm bớt cho phù hợp thực tế

PHP:
Sub khoa_sheet()
Dim sh As Worksheet
  For Each sh In Worksheets
    With sh
      .Cells.Locked = False
      .[a1:d100].Locked = True
      .Protect 12345
    End With
  Next
End Sub

PHP:
Sub mo_sheet()
  Dim sh As Worksheet
    For Each sh In Worksheets
      sh.Unprotect 12345
    Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Sub khoa_sheet()
Dim sh As Worksheet
For Each sh In Worksheets
With sh
.Cells.Locked = False
.[b1:b100,d1:d100].Locked = True
.Protect 12345, AllowFormattingColumns:=True, AllowFiltering:=True
End With
Next
End Sub



Với code của Anh Quang Hai. Em muốn khóa nhiều vùng (như chỗ tô mầu xanh em đã thử và sửa lại là 2 vùng b1:b100 và d1:d100) nhưng em chưa biết cách thêm nên khi chạy thử thì code ko chạy được. Mong A/c và các bạn giúp đỡ. Cảm ơn A/C và các bạn nhiều!
 
Lần chỉnh sửa cuối:
Upvote 0
A/C và các bạn giúp Em Code trên với ạ. Cám ơn A/C và các bạn nhiều!
 
Upvote 0
Với code của Anh Quang Hai. Em muốn khóa nhiều vùng (như chỗ tô mầu xanh em đã thử và sửa lại là 2 vùng b1:b100 và d1:d100) nhưng em chưa biết cách thêm nên khi chạy thử thì code ko chạy được. Mong A/c và các bạn giúp đỡ. Cảm ơn A/C và các bạn nhiều!
có lẽ bạn thiếu lệnh Unprotect
Mã:
Sub khoa_sheet()
  Dim sh As Worksheet
  For Each sh In Worksheets
    With sh
      [COLOR=#ff0000].Unprotect 12345[/COLOR]
      .Cells.Locked = False
      .[b1:b100,d1:d100].Locked = True
      .Protect 12345, AllowFormattingColumns:=True, AllowFiltering:=True
    End With
  Next
End Sub
 
Upvote 0
có lẽ bạn thiếu lệnh Unprotect
Mã:
Sub khoa_sheet()
  Dim sh As Worksheet
  For Each sh In Worksheets
    With sh
      [COLOR=#ff0000].Unprotect 12345[/COLOR]
      .Cells.Locked = False
      .[b1:b100,d1:d100].Locked = True
      .Protect 12345, AllowFormattingColumns:=True, AllowFiltering:=True
    End With
  Next
End Sub

Em cảm ơn Anh Hiếu và các Bạn đã giúp đỡ!
Em thay thử đoạn Unprotect vào những nó báo lỗi. A/C và các bạn xem giúp Em với. Tks A/C và các Bạn!
 

File đính kèm

Upvote 0
Em cảm ơn Anh Hiếu và các Bạn đã giúp đỡ!
Em thay thử đoạn Unprotect vào những nó báo lỗi. A/C và các bạn xem giúp Em với. Tks A/C và các Bạn!
chắc có lẽ là do các ô Merge cell không cho chỉnh, bạn chạy thử
Mã:
Sub khoa_sheet()
  Dim sh As Worksheet
  For Each sh In Worksheets
    With sh
      .Unprotect 12345
      .Cells.Locked = False
[COLOR=#ff0000]      .[b6:b100,d6:d100].Locked = True[/COLOR]
      .Protect 12345, AllowFormattingColumns:=True, AllowFiltering:=True
    End With
  Next
End Sub
nếu muốn chỉnh ô A1 thì chỉnh tất cả các ô đã merge
Mã:
 [COLOR=#ff0000].[a1:d1,b6:b100,d6:d100].Locked = True[/COLOR]
 
Upvote 0
chắc có lẽ là do các ô Merge cell không cho chỉnh, bạn chạy thử
Mã:
Sub khoa_sheet()
  Dim sh As Worksheet
  For Each sh In Worksheets
    With sh
      .Unprotect 12345
      .Cells.Locked = False
[COLOR=#ff0000]      .[b6:b100,d6:d100].Locked = True[/COLOR]
      .Protect 12345, AllowFormattingColumns:=True, AllowFiltering:=True
    End With
  Next
End Sub
nếu muốn chỉnh ô A1 thì chỉnh tất cả các ô đã merge
Mã:
 [COLOR=#ff0000].[a1:d1,b6:b100,d6:d100].Locked = True[/COLOR]

hihi... Anh Hiếu ơi, được rồi Anh ạ. Em cảm ơn Anh rất nhiều!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom