我们有一个Excel文件,后面有大量的VBA。 Excel文件在我的计算机上运行得很好,但到目前为止,我的3位同事(非IT' ers)都遇到了这个错误:
运行时错误5:
无效的过程调用或参数
错误位于此行,我不明白为什么它会在那里抛出错误,因为它只是一个简单的Set(并且它在我的计算机上完全正常):
Set MyButton = Application.CommandBars("Attributions").Controls.Add(Type:=msoControlButton, Before:=10)
我们都拥有完全相同的Excel文件。我甚至向他们发送了我的文件版本,其中一切正常,没有错误发生,但即使他们打开我的文件版本,他们仍然会在上面的行中得到上述错误!
究竟是什么导致这种情况?我们都有Office 2013
并自动安装更新。这个问题大约在两个星期前与一位同事开始,从本周开始,我听到其他两位同事说他们有同样的问题。有人甚至说他搬到另一张桌子后突然又恢复了工作(我怀疑会有影响)但不久之后又开始出现错误了。
我完全不知道他们为什么会得到错误,或者可能导致错误。看到我们现在都有相同的版本,他们仍然得到错误,我想它可能与Excel本身有关,但这只是我的想法。
这听起来对任何人都很熟悉吗?或者有谁知道可能导致这种情况的原因,以及如何解决这个问题?
编辑:前一段时间我检查了我的同事他们的计算机,看看CommandBar是否存在,它是。即使这样,错误仍然发生。
答案 0 :(得分:1)
我建议您使用一个函数检查CommandBar
中是否有Application
,如下所示:
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
现在,您可以使用它来查看您的用户CommandBar
中是否有Application
,然后将其设为:
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)
答案 1 :(得分:-1)
无效的过程调用或参数(错误5)
通话的某些部分无法完成。此错误有以下原因和解决方案:
参数可能超出允许值的范围。例如,Sin函数只能接受特定范围内的值。接受小于2,147,483,648的正参数,而2,147,483,648产生此错误。
检查参数允许的范围。
如果尝试调用在当前平台上无效的过程,也会发生此错误。例如,某些过程可能仅对Microsoft Windows或Macintosh等有效。
检查有关该过程的平台特定信息。
有关其他信息,请选择相关项目并按 F1 (在Windows中)或 HELP (在Macintosh上)。