下标超出范围错误 – Excel VBA

我知道这个问题经常被讨论,但我仍然无法find解决办法。 我得到下Subscript out of range error ,这发生和closures。

有时程序运行,但有时会被阻塞。

  • 该程序卡在以下行。
  • 与其他工作表相同的声明没有这个问题。
  • 我只打开一个工作簿,我更喜欢使用Activeworkbook而不是指定Excel文件。

    设置shAuditTrail = ActiveWorkbook.Sheets(“AuditTrail”)

在这里输入图像说明 我已经尝试了以下

  1. 将代码切换到名称Sheet5而不是工作表名称。
  2. 通过在立即窗口中输出所有工作表名称来确保名称是正确的。

好吧,打开并修复文件后,它似乎工作。 对于那些不知道如何打开和修复一个腐败的工作簿,这里是步骤(从MS支持)。

这个博客提供了一些关于解决同一问题的提示。 (虽然没有提供修复工作簿的解决scheme。)

我感谢所有回应和尝试帮助的人。

在这里输入图像说明

我只打开一个工作簿,我更喜欢使用Activeworkbook而不是指定Excel文件。

如果您的macros只是打算在同一个 Workbook运行AuditTrail Worksheet 那么您应该使用ThisWorkbook

 Set shAuditTrail = ThisWorkbook.Worksheets("AuditTrail")