Excel VBA崩溃

时间:2016-01-28 15:57:15

标签: excel vba

我的公司计算机最近从Office 2010升级到Office 2013.我有几个工作簿,其中包含大量输出各种报告的宏。升级后,他们都遇到了问题。最大的问题是Excel现在崩溃(“Microsoft Excel已经停止工作。”),代码在2010年运行得非常好。

我尝试将所有工作表和代码复制到新工作簿,并将按钮重新分配给新工作簿中的正确宏。它运行正常,但是当我尝试编辑代码时,它再次开始崩溃Excel。

代码编译正常,没有任何错误。我将选项更改为“在状态丢失前通知”和“打破所有错误”,但我仍然无法防止崩溃。

在我读取代码查找列标题的数据之前,我有VBA打开包含数据的电子表格。数组ESCARRAY具有存储在位置0(零)的列标题,当它找到匹配的列标题时,它将列名替换为列号,因此我可以从正确的列中提取数据(如果列移位我不必更改代码)。下面的代码检查以确保找到所有列名称并替换为数字。如果数组位置没有数字值(表示列号),我应该得到一个msgbox,然后代码将退出。当Excel进入“If Val(ESCARRAY(0,CNT))< 1和ESCARRAY(0,CNT)<>”BLANK“然后”行,过去一年运行良好(直到2013年)时,Excel崩溃升级)...

    'Check that the Columns were found...
    For CNT = 1 To GKLEN
      If Val(ESCARRAY(0, CNT)) < 1 And ESCARRAY(0, CNT) <> "BLANK" Then
         Workbooks(FILENAME).Saved = True
         Workbooks(FILENAME).Close
         Workbooks(THISTOOL).Activate
         MsgBox ("Column " & ESCARRAY(0, CNT) & " not found.  Exiting macro.")
         Exit Sub
      End If
    Next

最后,运行宏时,我确实在升级后立即收到VBA6.dll错误。对该错误的在线调查表明存在注册问题(IT表示他们没有触及注册表)。我下载了一个VBA6.dll文件并将其放在Windows / system32文件夹中,我不再收到该错误。

有什么建议吗?

0 个答案:

没有答案