我有一个带有宏的excel工作簿(master.xlsm),其他工作簿可以通过excel中的自定义工具栏来访问这些宏。 以前,当打开普通工作簿并访问自定义工具栏上的这些宏之一时,
现在具有最新的Office 365更新,方法(1)被阻止。因此,我必须手动打开master.xlsm才能执行宏。
现在显示在(1)中,
[无法运行宏“ C:\ Main \ master.xlsm'!macro1”宏可能不可用,或者可能禁用了所有宏]
在另一台PC上尝试过,Windows 10为最新版本,Office 365为最新版本。它可以正常工作,并且工作PC中Office 365的内置版本为MSO(16.0.11328 ....),而故障PC为MSO(16.0.11727 ....) 这可能是显而易见的原因,但是两个版本的Office 365都是最新的。
两台PC都具有相同的宏安全级别,并且master.xlsm位置已添加为excel信任中心位置中的受信任位置。
也是以前的更新,有故障的PC也可以工作,因此所有文件和设置都相同。
我的问题是否更改了excel vba安全标准?或如何解决而不降级Office内置版本的问题。
在图像1下面,当master.xlsm没有打开时,它给出了错误 图像2,当master.xlsm打开时,它执行宏并将文本插入book1.xlsx
答案 0 :(得分:0)
答案 1 :(得分:0)
好吧,只有在master.xlsm
中打开宏时,它才能运行。如果关闭,则无法在其中运行宏,需要首先将其打开。例如,先使用Workbooks.Open method将其打开。
Dim MasterWb As Workbook
On Error Resume Next 'test if master.xlsm is already open
Set MasterWb = Workbooks("master.xlsm")
On Error Goto 0
If MasterWb Is Nothing Then 'if it was closed open/run/close it
Set MasterWb = Workbooks.Open("C:\Main\master.xlsm")
Application.Run "master.xlsm!macro1"
MasterWb.Close SaveChanges:=False
Else 'if it was already opened just run macro and don't close it (or you might loose changes that were already made)
Application.Run "master.xlsm!macro1"
End If
答案 2 :(得分:0)
毕竟,Microsoft接受了Office 365月度和月度(目标)通道中的问题,并且他们已经在月度目标通道中解决了此问题,并等待月度通道修复。 显然,半年度和年度频道最初不受此问题的影响,因为它们将最稳定的更新从月度频道更新到半年度和年度频道。 我认为,如果您是小型企业并且不急于每个月立即等待每个更新,则选择半年度或年度更新渠道是不错的选择。