乔山办公网我们一直在努力
您的位置:乔山办公网 > office365 > Excel 请问如何破解VBA工程不可查看

Excel 请问如何破解VBA工程不可查看

作者:乔山办公网日期:

返回目录:office365


这是自带帮助里查到的:
隐藏模块中的编译错误 <模块名称>
特性 

受保护模块中包含一个编译错误。由于该错误位于受保护模块中,因此无法显示。

当代码与此应用程序的版本或体系结构不兼容时(例如,文档中的代码针对的是 32 位 Microsoft Office 应用程序,却试图在 64 位 Office 上运行),通常会发生此错误。

此错误的原因和解决方案如下:
错误原因:

当受保护(隐藏)模块内的 VBA 代码中存在编译错误时,会发生此错误。由于模块受到保护,因此不会显示此特定编译错误。  

可能的解决方案:
如果您有权访问文档或项目中的 VBA 代码,则取消对模块的保护,然后再次运行代码来查看特定错误。 
如果您无权访问文档中的 VBA 代码,则联系文档的作者,让其更新隐藏模块中的代码。



BA代码作为知识产权的重要内容,越来越受到高度重视。但VBA工程的保护相对而言是比较脆弱的。
我这儿有一份文件,是通过加密技术将VBA工程锁定为不可查看,全“程”含一个标准模块和三个过程约75行代码,作为测试文档,求破解。
VBA工程保护密码为"shourou".
如果您对此感兴趣,欢迎破解!
注意:应能完整破解该工程,即还原该VBA工程,而非仅仅读取或者查看到其中的过程名称或者模块名称。
代码还是能dump出来的

Module: ----------------------------------- mdlVBA -----------------------------------

Attribute VB_Name = "mdlVBA"
Option Explicit ''''显式变量7a686964616fe59b9ee7ad94330声明
Option Private Module ''''外部工程禁用

Public Const gstrUSER_MSG_TITLE As String = "ExcelHome.Net"

Private Function FieldsExists(intWsIndex As Integer, Optional blnDisplayAlerts As Boolean = True) As Boolean
''''功能:检查指定工作表的字段名称与内置字段名称是否匹配
''''参数:intWsIndex:=工作表索引;blnDisplayAlerts:=不匹配时是否弹出警告对话框
Dim Ws As Excel.Worksheet
Dim astrFieldNames() As String
Dim vntHeader As Variant
Dim I As Integer
Dim intColumnSize As Integer
On Error GoTo ErrorHandler
Select Case intWsIndex
Case 1
Set Ws = Sheet1
intColumnSize = 10 ''''字段数量
ReDim astrFieldNames(1 To intColumnSize)
astrFieldNames(1) = "OfficeID"
astrFieldNames(2) = "OfficeName"
astrFieldNames(3) = "Region"
astrFieldNames(4) = "Province"
astrFieldNames(5) = "City"
astrFieldNames(6) = "Address"
astrFieldNames(7) = "StartData"
astrFieldNames(8) = "ExpiryData"
astrFieldNames(9) = "OfficeArea"
astrFieldNames(10) = "Reviser"
End Select
vntHeader = Ws.Cells(1, 1).Resize(1, intColumnSize).Value ''''标题行
For I = 1 To intColumnSize
If Not StrComp(vntHeader(1, I), astrFieldNames(I), vbTextCompare) = 0 Then Exit For
Next
If I > intColumnSize Then
FieldsExists = True
Else
If blnDisplayAlerts = True Then
MsgBox Ws.Name & Chr$(34) & vntHeader(1, I) & Chr$(34) & "与标准字段名" & Chr$(34) & astrFieldNames(I) & Chr$(34) & "不匹配。", vbExclamation, gstrUSER_MSG_TITLE
End If
End If
On Error GoTo 0
Exit Function
ErrorHandler:
If ExcelHomeErrorHandler("Private Function FieldsExists") = True Then Resume Next
End Function

Public Function FileExists(strFileName As String) As Boolean
''''功能:判断文件或者文件夹是否存在
''''参数:strFileName:=待考查的文件或者文件夹的完整路径
FileExists = (Len(Dir(strFileName, vbDirectory)) > 0)
End Function

Public Function ExcelHomeErrorHandler(strProcName As String) As Boolean
''''功能:错误处理程序
''''参数:strProcName:=出错的过程名称
Dim strErrMessage As String
strErrMessage = "程序运行在" & Chr$(34) & strProcName & Chr$(34) & "过程时发生错误。" & vbCrLf & _
"错误时间:" & Now & vbCrLf & _
"错误代号:" & Err.Number & vbCrLf & _
"错误原因:" & Err.Description
Err.Clear ''''清除错误
If MsgBox(strErrMessage & vbCrLf & "是否继续?", vbExclamation + vbYesNo, gstrUSER_MSG_TITLE) = vbYes Then
ExcelHomeErrorHandler = True
Else
With Application
.StatusBar = False ''''清空状态栏
.DisplayAlerts = True ''''恢复警告对话框
.EnableEvents = True ''''恢复事件
.ScreenUpdating = True ''''恢复屏幕更新
End With
ExcelHomeErrorHandler = False
End If
End Function


点击左上角的office图标(文件)——选项——信任中心——信任中心设置——受保护的视图——为来自Interet的文件启用受保护的视图。为位于可能不安全位置的文件启用受保护的视图。为outlook附件启用受保护的视图。看需要把前面的勾去掉。试试

相关阅读

  • Excel 请问如何破解VBA工程不可查看

  • 乔山办公网office365
  • 这是百自带帮助里查到的:隐藏模块中的编译错误 <模块名称>特性 受保度护模块中包含一个编译错误问。由于该错误位于受保护模块中,因此无法显示。当代码与此应用程序的版本或体
  • 将word文件隐藏后怎么恢复?

  • 乔山办公网office365
  • 要恢复隐藏的文字可以执行以下操作:百1、点击左上角的开始按钮,打开开始菜单。2、在开始菜单中找到word选项,并打开。3、在word选项中,点击 显示——勾选隐度藏文字,这样隐藏
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网