同事得到VBA Excel文件错误5,但同样的文件在我的电脑上工作正常吗?

我们有一个Excel文件,后面有大量的VBA。 Excel文件在我的电脑上工作得很好,但是到目前为止,我的三个同事(非IT人员)都遇到了这个错误:

运行时错误5:
无效的过程调用或参数

该错误位于这一行,我不明白为什么它会抛出一个错误,因为它只是一个简单的设置(它在我的电脑上工作得很好):

Set MyButton = Application.CommandBars("Attributions").Controls.Add(Type:=msoControlButton, Before:=10) 

我们都有完全相同的Excel文件。 我甚至给他们发了我的版本的文件,其中一切运行良好,没有错误发生,但即使他们打开我的版本的文件,他们仍然在上面的线路上面的错误!

究竟是什么原因导致了 我们都有Office 2013并自动安装更新。 这个问题是在两个星期前与一位同事开始的,从本周我听到另外两位同事说他们有同样的问题。 有人甚至说,他搬到另一个办公桌后突然再次工作(我怀疑是否会有影响),但不久之后,又开始出现错误。

我完全不知道他们为什么会得到这个错误,或者是什么原因造成的。 看到我们现在都有相同的版本,他们仍然有错误,我认为这可能与Excel本身有关,但这只是我的想法。

这听起来很熟悉吗? 还是有人知道什么可能会导致这种情况,以及如何解决?

编辑:前一段时间,我检查了我的同事他们的电脑,看看CommandBar是否存在,它是。 即使如此,错误仍然发生。

我build议你使用一个函数来检查Application是否有CommandBar ,如下所示:

 Function IsCommandBarValid(cbName As String) As Boolean Dim i As Long IsCommandBarValid = True For i = 1 To Application.CommandBars.Count If (Application.CommandBars(i).Name = cbName) Then Exit Function End If Next i IsCommandBarValid = False End Function 

现在,您可以使用它来查看您的用户在其Application是否具有该CommandBar ,然后如下所示:

 If (Not IsCommandBarValid("Attributions")) Then Call Application.CommandBars.Add(Name:="Attributions") End If ' And after this add your code Set MyButton = Application.CommandBars("Attributions").Controls.Add(Type:=msoControlButton, Before:=10) 

无效的过程调用或参数(错误5)

部分通话不能完成。 这个错误有以下原因和解决办法:

  • 一个参数可能超出了允许值的范围。 例如,Sin函数只能接受一定范围内的值。 接受less于2,147,483,648的积极论据,而2,147,483,648则产生这个错误。

    检查参数允许的范围。

  • 如果尝试调用当前平台上无效的过程,也会发生此错误。 例如,某些过程可能仅对Microsoft Windows或Macintosh等有效。

    检查关于程序的特定于平台的信息。

有关其他信息,请select有问题的项目,然后按F1 (在Windows中)或HELP (在Macintosh中)。

  • MSDN源文章