Office 更新后,另一个工作簿中的宏停止工作

Macros from another workbook stopped working after office update

我有一个带有宏 (master.xlsm) 的 excel 工作簿,其他工作簿可以通过 excel 中的自定义工具栏访问这些宏。 以前当普通工作簿打开并访问自定义工具栏中的这些宏之一时,

  1. 如果master.xlsm还没有打开,则在后台打开并执行宏到正常工作簿
  2. 如果master.xlsm已经打开,则直接对正常工作簿执行宏。

现在随着最近的 office 365 更新,方法 (1) 被阻止了。因此我必须手动打开 master.xlsm 来执行宏。

现在在 (1) 中显示,

[不能 运行 宏 "C:\Main\master.xlsm'!macro1" 宏可能不可用或所有宏都被禁用]

在另一台电脑上试过,windows 10 是最新的,office 365 是最新的。它工作正常,工作电脑中的 office 365 内置版本是 MSO(16.0.11328 ....),故障电脑是 MSO(16.0.11727 ....) 这可能是一个显而易见的原因,但两个版本的 Office 365 都是最新的。

两台 PC 具有相同的宏安全级别,并且 master.xlsm 位置已添加为 excel 信任中心位置中的受信任位置。

故障 PC 前的更新也有效,因此所有文件和设置都相同。

我的问题 excel vba 安全标准改变了吗?或者如何在不降级 office build 版本的情况下解决。

下图 1 当 master.xlsm 未打开时出现错误 图 2 当 master.xlsm 打开时执行宏并将文本插入 book1.xlsx

when master xlsm not opened

when master xlsm is opened

嗯,我首先要检查 "open" 宏是否在 "master.xlsm" 中工作,如下所示:



这可能无法解决您的问题,但可以说明问题出在哪里

同时在此处发布 master.xlsm 中的一些代码会有所帮助

你只能运行打开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

毕竟 Microsoft 承认这是 Office 365 月度和月度(目标)频道中的一个问题,并且他们已经在月度目标频道中修复它并等待月度频道修复。 显然,半年和年度频道首先不受此问题的影响,因为它们将最稳定的更新从每月频道带到半年度和年度频道。 我认为如果您是小型企业,而不是每个月都急切地等待每一次更新,那么选择半年或年度更新渠道是很好的选择。

回答 https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_win10-mso_o365b/macros-from-another-workbook-stopped-working-after/9779bd5f-e858-4213-9ea6-95597e867a07?messageId=4d2e3ce7-350d-4bfd-82b2-f54c8654016e&page=1

更新渠道概览 https://docs.microsoft.com/en-us/deployoffice/overview-of-update-channels-for-office-365-proplus#visual-representation-of-the-update-channels-for-office-365-proplus