我有一个vba excel模型,我将其分为两个单独的工作簿: 包含模型的所有输入的InputswB, RunnerWB,其中包含大部分VBA代码(以及所有

问题描述 投票:0回答:0
RunnerWB

,其中包含大部分VBA代码(以及所有班级模块在这里)。 根据用户的需求,

InputsWB
可以在
RunnerWB
中调用宏,也可以调用多个版本的
RunnerWB
InputsWB
。细节对这个问题无关紧要,但是两个工作簿需要分开。
术,分裂后,我有时会得到消息
Run-time 1004 error
。如果我
Cannot Run Visual Basic Editor Because of a Syntax error

,那么代码将其运行,直到遇到下一个。

我看到了许多类似的问题

录制宏或在
Debug + F5
上。我认为我的与
Application.Calculate
有关,但是这些答案不能解释为什么会发生这种情况。我可以思考的一些原因,但无法在线确认是:

具有相同名称的两个工作簿中的模块(尽管我在Application.Calculate中更改了模块名称,但偶尔仍然会出现错误。 具有相同名称的两个工作簿中的VBA函数


还有其他原因,为什么我可以遇到这些错误?
update(2019/12/02)

我终于意识到了为什么我遇到了这个错误。我从我的
    Application.Calculate
  1. 中呼唤一个宏。但是,我的RunnerWB中声明了重复的功能。通常,当从本工作书中启动宏时,这将给出一个
    InputsWB
    。但是,因为它是从另一个工作簿中启动的,所以我在上面解释了
  2. RunnerWB
  3. update(2020/07/22)
我现在在运行结束时再次在

InputsWB

上再次遇到此错误。让我感到惊讶的是,我在跑步期间使用了很多次。

update(2020/07/23)

i发现了终于引起该错误的问题。

i在一个称为
Compile error: ambigious name detected
的模块中有一个名为
Syntax error
我的工作簿中的按钮之一是转到此按钮,并且因为名称与其链接为

Application.Calculate

我将模块重命名为

Application.Calculate

。该按钮仍然有效,但是VBA内部的某些东西被打破了,这是在某些执行中触发的。
结论
永不给您的子名称与VBA中的模块相同,因为这可能会导致问题。

我也有这个错误。我也确实有一个按钮链接到一个像该模块一样命名的过程。我重命名模块后,发生了错误。我在更改之前有一个版本,所以尝试了一些事情。

终于有效的是:

  • 发生错误后:
    复制所有代码中的文本文件,删除按钮和模块。节省。关闭。打开。创建一个具有正确名称的新模块并粘贴代码。创建按钮。您必须关闭Excel/vba或错误将持续下去。
    
  • 在重命名模块之前:
  • 删除按钮。节省。关闭。打开。重命名模块。创建按钮。 
    ,您也必须在介于两者之间关闭Excel/vba。
    
    
  • 我希望这会有所帮助!

excel vba runtime-error
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.