maiban1986
Thành viên thường trực




- Tham gia
- 28/2/13
- Bài viết
- 229
- Được thích
- 29
Xin hỏi các anh chị có cách nào không cho file excel save as không. xin chỉ dùm. xin cám ơn cả nhà
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<!-- Thêm the? mo´i va`o Ribbon -->
<commands>
<command idMso="FileSaveAs" enabled="false"/>
<command idMso="TabShare" enabled="false"/>
<command idMso="TabInfo" enabled="false"/>
</commands>
</customUI>
F12 là được màDùng CustomUI viết 1 đoạn mã cho file, khóa chức năng save as lại là được.
PHP:<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <!-- Thêm the? mo´i va`o Ribbon --> <commands> <command idMso="FileSaveAs" enabled="false"/> <command idMso="TabShare" enabled="false"/> <command idMso="TabInfo" enabled="false"/> </commands> </customUI>
chạy lệnh Application.EnableEvents=False, sau đó thoải mái save as.Tất nhiên phải khóa VBA lại. Tất nhiên khóa rồi nhưng nhiều người vẫn biết cách mở. Vân vân và vân vân.
Nói chung những kiểu này chỉ chống người không thạo VBA thôi. Vì nhiều người còn không biết là tồn tại cái gọi là EnableEvents, ScreenUpdating chứ chưa cần nói đến chuyện dùng chúng. Muốn chống "cao nhân", "pro" thì chỉ còn nước tự viết hoặc dùng phần mềm của bên thứ ba thôi.chạy lệnh Application.EnableEvents=False, sau đó thoải mái save as.
-----------------chạy lệnh Application.EnableEvents=False, sau đó thoải mái save as.
Private Sub Auto_Open()
Call OnEvents
End Sub
Sub OnEvents()
Application.EnableEvents = True
Application.OnTime VBA.Now + VBA.TimeSerial(0, 0, 1), "'" & ThisWorkbook.Name & "'!OnEvents"
End Sub
Không hẳn như thế.-----------------
Chắc là bác truongvu317 chỉ nói về trường hợp của bác batman1 đề xuất nên mới set về false được.
Nếu chỉ có một trường hợp này thì có thể không cho set về False.
Tạo Module với Code:
PHP:Private Sub Auto_Open() Call OnEvents End Sub Sub OnEvents() Application.EnableEvents = True Application.OnTime VBA.Now + VBA.TimeSerial(0, 0, 1), "'" & ThisWorkbook.Name & "'!OnEvents" End Sub
Nhưng vẫn còn quá nhiều cách để SaveAs, tuy nhiên đối với bạn này thì đã đủ rồi, khóa với những người "trong nhà" thôi.
Nếu người "trong nhà" đã cho VBA hoạt động thì xem như người này không thể làm gì hơn rồi.
Sub he()
Application.EnableEvents = False
Workbooks("hichic.xlsm").SaveAs "c:\blala.xlsm"
Application.EnableEvents = True
End Sub
Nhưng vẫn còn quá nhiều cách để SaveAs, tuy nhiên đối với bạn này thì đã đủ rồi, khóa với những người "trong nhà" thôi.
Vụ này có vẻ đa dáng quá, chắc dọn nhà sang dùng lockxls cho nhàn.Thực ra cái code của tôi nó cấm cả Save chứ không chỉ Save As
Hình như lockxls chỉ khoá save còn save as vẫn được hiiiiVụ này có vẻ đa dáng quá, chắc dọn nhà sang dùng lockxls cho nhàn.
Haizzz, Bài toán vô nghiệm á bác, sài nghiệm phức thui bác.Hình như quý vị quên rằng những loại "cấm đoán" này cần phải thêm "cấm lên GPE"
nó save as thành một file .exe thì có coi là thất thủ hơm.Hình như lockxls chỉ khoá save còn save as vẫn được hiiii
Và "cấm bà chị, ông anh, con em, thằng em, bạn thân, bạn cùng phòng ... lên GPE"Hình như quý vị quên rằng những loại "cấm đoán" này cần phải thêm "cấm lên GPE"
Nếu không có cái điều kiện kia. Người ta chỉ việc đưa lên "sao file của em..." là xong hết.![]()
Trên GPE toàn là "trùm mò" không kkkkkVà "cấm bà chị, ông anh, con em, thằng em, bạn thân, bạn cùng phòng ... lên GPE"![]()
Mình chạy thử xong vẫn Save as bình thường. Xin bạn chỉ lại giúpChắc là thế này: Nếu tập tin đang là XLSX thì save thành XLSM -> Alt + F11 -> đúp chuột vào ThisWorkbook -> dán code
Mã:Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True End Sub
-> Save
Tất nhiên phải khóa VBA lại. Tất nhiên khóa rồi nhưng nhiều người vẫn biết cách mở. Vân vân và vân vân.
Mình chạy thử xong vẫn Save as bình thường. Xin bạn chỉ lại giúp