Private Sub ResetVBOM()
On Error Resume Next
Dim regKey As String
regKey = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\AccessVBOM"
CreateObject("WScript.Shell").RegDelete regKey
End Sub
Chào Các anh/chị!
Trust access to the VBA project model của em bị mờ và không thể click.
Em dùng ex 2010
Có ai biết làm thế nào để sửa không ạ.
Function DelRegValue(ByVal RegKey As String, ByVal RegValue As String)
CreateObject("WScript.Shell").Run "cmd /c reg delete """ & RegKey & """ /v """ & RegValue & """ /f", 0, True
End Function
Sub Main()
Const RegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Excel\Security"
Const RegValue = "AccessVBOM"
DelRegValue RegKey, RegValue
End Sub
Khắc phục như sau:
- Mở Registry (bấm lá cờ Windows + R rồi gõ lệnh Regedit và Enter)
- Duyệt đến đường dẫn HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Excel\Security
- Nhìn khung bên phải sẽ thấy AccessVBOM... chọn vào nó và delete
- Đóng Registry lại, kiểm tra Excel
View attachment 147516
Bạn cũng có thể chạy code VBA này:
Mã:Function DelRegValue(ByVal RegKey As String, ByVal RegValue As String) CreateObject("WScript.Shell").Run "cmd /c reg delete """ & RegKey & """ /v """ & RegValue & """ /f", 0, True End Function Sub Main() Const RegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Excel\Security" Const RegValue = "AccessVBOM" DelRegValue RegKey, RegValue End Sub
Thế bạn có chạy code của tôi chưa? Kết quả thế nào?Em đã làm theo hướng dẫn nhưng không có gì thay đổi.
Vâng .em đã chạy code của anh ,không có thsy đổi gì, sau đó lại thực hiện tiếp theo hướng dẫn của anh ndu nhưng cũng vậy.Thế bạn có chạy code của tôi chưa? Kết quả thế nào?
Tắt Excel đi, mở một file trắng rồi xem thử nó có hiện ra không, nếu nó vẫn còn, thì thử chạy thêm macro này nữa xem:Vâng .em đã chạy code của anh ,không có thsy đổi gì, sau đó lại thực hiện tiếp theo hướng dẫn của anh ndu nhưng cũng vậy.
Private Sub VBOM_Reset()
On Error Resume Next
Dim regKey1 As String, regKey2 As String, Version As String
Version = "\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\AccessVBOM"
regKey1 = "HKEY_LOCAL_MACHINE" & Version ''Huy check voi Enable=False
regKey2 = "HKEY_CURRENT_USER" & Version ''Huy check voi Enable=True
With CreateObject("WScript.Shell")
.RegDelete regKey1
.RegDelete regKey2
End With
End Sub
Tắt Excel đi, mở một file trắng rồi xem thử nó có hiện ra không, nếu nó vẫn còn, thì thử chạy thêm macro này nữa xem:
Mã:Private Sub VBOM_Reset() On Error Resume Next Dim regKey1 As String, regKey2 As String, Version As String Version = "\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\AccessVBOM" regKey1 = "HKEY_LOCAL_MACHINE" & Version ''Huy check voi Enable=False regKey2 = "HKEY_CURRENT_USER" & Version ''Huy check voi Enable=True With CreateObject("WScript.Shell") .RegDelete regKey1 .RegDelete regKey2 End With End Sub
Trong trường hợp đó phải xử lý ra sao đây Thầy? Bạn ấy làm thủ công còn không được nữa mà!Nếu code này mà tác giả bảo thành công thì tôi không biết gì để nói nữa... Bởi:
- Nhánh HKEY_LOCAL_MACHINE là dùng để Set "cứng" ---> Nó có thể check hoặc không check mục "Trust access... " nhưng đồng thời cũng làm cho mục ấy mờ đi (mờ nhưng vẫn xài được). Và nếu nhánh HKEY_LOCAL_MACHINE được kích hoạt thì sẽ bất chấp nhánh HKEY_CURRENT_USER set kiểu gì
- Nhánh HKEY_CURRENT_USER hoạt động tương tự nhưng khác ở chỗ nó không làm cho mục "Trust access..." bị mờ đồng thời nó chỉ hoạt động thì nhánh HKEY_LOCAL_MACHINE chưa tồn tại
Nguyên tắc là vậy nên tôi thấy code trên nó... kỳ kỳ
Ẹc... Ẹc...
Trong trường hợp đó phải xử lý ra sao đây Thầy? Bạn ấy làm thủ công còn không được nữa mà!
Tôi đâu có biết! Nếu ngồi ở trên máy của tác giả thì.. hy vọng có thể biết
Nếu như cài lại office có khả dĩ không Anh?