Posted in: PC/macOS

MacOS 打不开Office:您没有权限来打开应用程序

昨天晚上重启了一下我的M1 Macbook Air,然后就自然睡眠到今天早上。发现Excel打不开了,提示:您没有权限来打开应用程序“Microsoft Excel.app”。如图(网上借用的图)所示。

但Word和PPT都能打开。

这种问题直接 Google 难度很大,用终端工具去比较一下 Word 和 Excel 的区别能发现。终端进入 /Applications/Microsoft Word.app/Contents/MacOS然后用file命令查看一下Microsoft Word文件可以看到:

$ file 'Microsoft Word' 
Microsoft Word: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
Microsoft Word (for architecture x86_64):	Mach-O 64-bit executable x86_64
Microsoft Word (for architecture arm64):	Mach-O 64-bit executable arm64

终端进入 /Applications/Microsoft Excel.app/Contents/MacOS然后用file命令查看一下Microsoft Excel文件可以看到:

$ file 'Microsoft Excel'
Microsoft Excel: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
Microsoft Excel (for architecture x86_64):	Mach-O 64-bit executable x86_64
Microsoft Excel (for architecture arm64):

看出问题来了,Excel的arm64没了。实际上问题在于:昨天晚上Office正在后台静默下载更新,那时重启系统,下载被中断了(但前台没有任何提示),所以出现了文件不完整的情况。

解决办法就是从Office官网下载Excel更新包(pkg)格式,直接双击安装就行。安装完之后再检查一次:

$ file 'Microsoft Excel' 
Microsoft Excel: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
Microsoft Excel (for architecture x86_64):	Mach-O 64-bit executable x86_64
Microsoft Excel (for architecture arm64):	Mach-O 64-bit executable arm64

arm64重新恢复,这样就没事了。

这其实是微软的bug,如果能在关机之前提醒一下用户就好了。而且错误信息显示得也不对,并不是没有权限,而是文件损坏了。

遇到类似的“您没有权限来打开应用程序“Microsoft Word.app””、“您没有权限来打开应用程序“Microsoft PowerPoint.app””之类的朋友,也可以用这种方法解决。

下面要想办法把Office的自动更新关掉,太坑人了。

Comments (9) on "MacOS 打不开Office:您没有权限来打开应用程序"

  1. Google Chrome 94.0.4606.81 Mac OS X  10.15.7

    虽然道理我都懂,不过我还是下载了个wps,免费也没有弹窗广告,轻度处理文件我觉得没问题,重度不知道

  2. Google Chrome 95.0.4638.54 Windows 10 x64 Edition

    一直想买个macbook,但是平时用的最多也就是office套装,公司又配了windows笔记本,找不到买MacBook的理由 ????

  3. Google Chrome 96.0.4664.45 Windows 10 x64 Edition

    Windows的话就是:

    Windows:您需要管理员权限删除这个文件
    我:*允许使用管理员权限*
    Windows:您还是没有权限删除这个文件,请和IT管理员联系
    我:???

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注