不在休息模式下调用Sub给出下标超出范围

时间:2016-10-05 18:32:54

标签: excel-vba vba excel

我有一个工具可以将信息从pdf提取到Excel中。它可以有三种不同类型的拉力,因此有一个Case Select可以告诉它使用哪一种。我遇到的问题是......奇怪......

在Sheet5上,“浏览”表格基本上是控制面板,您可以选择所需的比较方法,然后单击“开始”。然后它选择Sheet4上的三个子中的哪一个来调用和关闭它。代码在这里:

    Select Case CompMeth$
       Case "Pri"
            Call Sheet4.PDFCopyImagePri
       Case "Luf"
            Call Sheet4.PDFCopyImageLuf
       Case "All"
            Call Sheet4.PDFCopyImageAll
    End Select

后两个给我一个“下标超出范围”错误,但在休息模式下 NOT 。如果我在该代码的顶部放置一个断点并使用F8逐行运行,那么它可以工作并转到Sheet4中的Sub。当我让它以正常速度运行时,我才能得到错误。

这三个子都在Sheet4上,并且所有三个都正确选择并在中断模式下工作,但是“Luf”和“All”在尝试选择sub而不是中断模式时给出错误。

第一个Sub工作在调用案例中,三个子都驻留在Sheet4上,他们甚至都开始使用相同的前十几行代码......我很困惑......我试过了直接从Sheet4复制Sub的名称,我尝试使用菜单,在键入“Sheet4”时提示内容。要选择子名称,我已尝试通过从两个位置的名称中删除“复制”来重命名Sub。无论它在休息模式下似乎只能工作,但通常不会。要明确Case Select正在运行。它到达“呼叫”行,这就是它给出错误的地方。

编辑:我不确定是否有用的另一个注意事项是此工具是另一个工具的修改版本,该工具使用完全相同的 Case Select和Subs,该工具是仍然工作得很好。事实上,这个新工具实际上是将旧工具保存为新名称。我甚至无法想象为什么字面上完全相同的代码适用于一个而不是下一个。 :(

0 个答案:

没有答案