注意你那个excel文件的后缀名,如果是xlsx,那就是不保存宏的格式,必须保存为xlsm这样的格式才能有效保存下来代码。
另外,你也可以存成老版本的格式,xls这样就都有了。。。
解决方法:
通过修复或删除不可读取的内容,Excel已能够打开该文件。此工作簿已丢失了其VBA工程、Active控件以及其他任何与可编程序性相关的功能。
1)尝试将该文件另存为其他格式,之后再直接打开这个另存格式文件,看看效果。工作簿内可以检查一下,看下是否有存在引用上的问题,或是有插入插件的情况,暂时移除这些东西,保存后看下效果。
2)在控制面板-卸载程序中,右键Office,点击更改-联机修复,先尝试修复,看下修复效果。
3)使用“win+R”后输入excel /safe进入安全模式下启动excel。然后单击文件--选项--加载项。在管理列表中,单击COM 加载项,然后单击转到。在COM 加载项对话框中,将加载项列表中的所有勾选全部取消,然后单击确定。重新启动应用程序。
4)系统下可能存在的三方安全程序和优化软件(带防火墙性质的)建议您暂时关闭或者卸载掉,干净启动系统,重启后只运行excel看看效果:
1 win+R后,输入msconfig,回车
2 点击服务,勾选隐藏Microsoft服务,点击全部禁用
3 重启
5)定位到 C:\Users\用户名\AppData\Roaming\Microsoft\Excel\XLSTART ,检查一下这个EXCEL加载文件夹中是否多出一个StarUpxls文件。如果有,请您直接将StarUpxls删除即可。
可能是以下7个原因引起的,要分不同情况具体对待
1、Office(Access)的补丁更新造成的
最近office2016版本 2019版本的很多都出现这个问题了 ,是因为Office(Access)的补丁更新造成的。微软的Access有几次补丁出现过这个bug, 解决办法是一是退回之前稳定的版本,二是更新到最最新的版本
一般 使用帐户-更新选项-立即更新 一下即可
2、如果是Office2010 ,看是否网友xc555这种情况,可参考他的解决方法
先安装office 2010 sp2补丁,再卸载office 2010 sp2补丁 重启就成功了
PS:在网上找了N个解答,一直无法解决,看到一篇文章(说:sp2补丁会将vb编译器升至71,虽未解决)但受启发,尝试先安装sp2补丁,再卸载,结果就成功了
3、是因为中英文系统变化引起
中文系统做的程序到英文系统会出现这个问题,换系统 或 在英文系统重新设计相关窗体,而且模块使用可能遇到问题。或者在出现这个提示后选取消,再 *** 作几次,就不再出现,对有问题的功能重新设计 (千万不要点确定)
4、VBA环境或版本改变导致的
将C:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\VBA目录中的文件恢复至安装状态,出现这个问题的原因是VBA程序被修改,必须恢复未被修改的版本。 只要把旧版路径为vba\vba71下的vbe7dll文件拷贝替换到新安装的vba\vba71下替换就可以了 (先备份)
5、可能是VBA真正损坏了
可先备份当前数据库,再使用Access的压缩修复功能修复一下
6、还有可能是不同的版本混合交叉打开导致的(不兼容)
网友出现过:我的计算机上安装了Access 2010,并对前端Access文件的复制版本进行了一些更新。我重命名了更新的副本以替换原始访问文件,并将旧文件放在备份文件夹中。我需要在第二天进行另一次更新,但使用的***连接使访问前端文件成为一种痛苦,所以我远程进入一个承载该文件的服务器,并使用该服务器的Access 2007应用程序进行更新。文件版本是2007-2010,因此我不认为它会导致任何错误更新。但是,我不知道为什么。
在进行这些更新时,我从未更新过任何vba,也没有收到除了sql函数错误以外的任何类型的错误。每次都成功保存并压缩和修复前端。然后我的最终用户开始接收宏和vba错误,这些错误阻止他们打开文件或输入任何信息。我发现vba模块已从文件中完全删除。此外,每次使用Access 2010在自己的计算机上打开文件时,原始备份的每个备份和副本都会损坏,即使我没有单击“确定”继续删除VBA模块。如果没有收到vba错误,我无法打开单个文件。用户通过在Intranet站点上下载自己的副本来访问前端文件,这样就不会损坏实际的文件。当我尝试这样做时,文件仍然被损坏,甚至损坏了原始文件。我的同事能够找到一个干净的备份,最终用户能够恢复工作,但我不能触摸文件,否则它也会损坏。即使我使用shift+open跳过开始代码,我仍然会收到错误。我的同事正在运行Access 2013,在打开备份文件副本时未收到任何这些错误。
试过:
紧凑型维修
反编译/重新编译
Access 2010版本为14072245000(32位),因此已下载Office 2010 SP2
反编译不起作用,因为打开文件时我会立即收到vba错误(shift+open)。我没有新的访问更新要下载。我不能恢复到以前的版本,因为这不是我的公司可以接受的解决方案。我没有尝试将对象导入新的前端文件,因为每次打开文件时,都会删除或损坏VBA模块,因此无法导入或导出它们。我会失去所有的vba模块,因为我不是最初的开发人员,我不知道包括什么。我正在尝试更新2013年的访问权限,但这可能需要一段时间。
我读到的关于这个问题的所有信息都表明,当不同版本的access尝试打开同一个文件时,会发生这种情况,但是如果我使用access 2007和2010打开的文件的版本是2007-2010,为什么我仍然会得到这个错误如果这是2007年的问题,为什么我在使用2010年的同时还要损坏在使用2007年软件之前制作的每个备份文件,特别是如果其他人在使用2010年、2013年和2016年的时候能够很好地访问该文件
7、如果还不行,尝试将所有对象导入到一个新数据库文件
希望可帮到您!,也可关注我
原因是电脑中有文件丢失或损坏的意思。
1、首先是需要打开电脑的桌面,如图所示,点击运行的选项。
2、然后就会d出对话框,如图所示,输入msconfig,点击确定进入。
3、然后d出的对话框,如图所示,点击上面的工具,选择更改uac设置的选项。
4、接下来点击右下角启动的选项。
5、最后,进行点击开始选择关机的选项,然后重启电脑就可以解决问题了。
VBA项目丢失无法恢复过来。
你的电脑出现的这种情况是由于杀毒软件将Excel系统文件误杀造成的。
解决办法:1、依次打开C:\Documents and Settings\Administrator\Application Data\
Microsoft\Excel\XSTART\这个EXCEL加载文件夹中多出一个StarUpxls文件
直接将StarUpxls删除就OK!2、你先禁用宏,然后进入vba编辑界面(ALT+F11),在编辑器下选择菜单:工具-引用,将丢失引用的勾选去除确定,如需要,可再启用宏。
以上就是关于Excel文件打开后,单击启用内容,报错Visual Basic for Applications(VBA)宏已经损坏且已被删除。全部的内容,包括:Excel文件打开后,单击启用内容,报错Visual Basic for Applications(VBA)宏已经损坏且已被删除。、vba打开文件跳过修复、无法读取数据库中所含的VBA工程怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)