VBA lỗi run time error '1004' khi protect sheet

Liên hệ QC

hieuphung

Thành viên mới
Tham gia
22/1/08
Bài viết
5
Được thích
0
Điểm
0
Tuổi
45
Các anh chị giúp em vấn đề này ạ:

Em có một file bảng tính lương sản phẩm chứa nhiều công thức. Để giảm bớt dung lượng file, em đang sử dụng vba sau để mỗi lần kick đúp chuột sẽ copy thêm một dòng chứa công thức như những dòng ở trên.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
r = Target.Row
If r = 1 Then Exit Sub
cc = Target.SpecialCells(xlCellTypeLastCell).Column
Target.EntireRow.Insert
For c = 1 To cc
If Cells(r - 1, c).HasFormula = True Then
Cells(r, c).FormulaR1C1 = Cells(r - 1, c).FormulaR1C1
End If
Next
End Sub

Đoạn mã lệnh này hoạt động ok. Vấn đề là em lại muốn bảo vệ các ô chứa công thức bằng cách Protect sheet (nếu bấm vào các ô chứa công thức), em dùng đoạn mã sau:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Locked = True Then
Me.Protect Password:="pth&nkt"
Else
Me.Unprotect Password:="pth&nkt"
End If
End Sub

Vậy là khi em kích đúp chuột thì mã VBA không hoạt động mà báo lỗi Run time error '1004'

Em gà về VBA nên chưa hiểu tại sao khi em chọn ô không chứa công thức thì sheet đã được unprotect mà đoạn mã kích đúp xuống dòng copy lại không hoạt động được, hay phải kết hợp lồng hai đoạn mã với nhau?

Các bác làm ơn giúp em với, gấp lắm rồi ạ.

Thanks & best Rgds!
 
Lần chỉnh sửa cuối:
Ôi chẳng bác nào giúp em nhỉ, help me pls.
 
Upvote 0
Khả năng VBA can thiệp vào ô nào đó bị Protect rồi. Bạn nhớ khi Sheet bị khóa, ngoài ra một số chức năng không hoạt động được. Khi thiết lập protect cần chọn 1 số chức năng
 
Upvote 0
Bác ơi dòng lệnh thứ hai của em là bỏ protect sheet khi con trỏ chuột ở ô không bị lock mà? Nghĩa là trước khi dòng code BeforeDoubleClick hoạt động thì em đã để trỏ chuột vào ô không lock, như thế toàn bộ sheet đã được unprotect rồi mà.
 
Upvote 0
Nếu kích đúp chuột thì sự kiện Worksheet_BeforeDoubleClick hoạt động trước, nếu sheet đang khóa thì có thể một số chức năng bị lỗi
 
Upvote 0
Em hiểu, bởi vậy em trước khi kich đúp chuột thì để trỏ chuột vào ô không bị lock, như vậy dòng code 2 hoạt động, toàn bộ sheet đã unprotect, sau đó em mới kich đúp chuột mà cũng không được ạ. Em là bảng này để cho mấy chị em trong phòng nhập dữ liệu, sợ táy máy lại xóa mất các ô có công thức thì khổ, thế mà vẫn loay hoay quả này anh ạ. Em không muốn copy sẵn hàng ngàn dòng bởi như thế file nặng chạy ì ạch lắm.
 
Upvote 0
Bác nào rành vba vào comment cho em một phát xử lý vấn đề nào.
 
Upvote 0
Web KT
Back
Top