Excel VBA 调试器停止,没有错误或警告

2024-01-11

在尝试测试一些代码时,我遇到了一个我不记得以前遇到过的问题。当我单步执行代码时,它在 ClearContents 行之后停止......没有错误,没有警告,什么也没有。

Public Sub CreateCurMth(wsCur As Worksheet)
Dim iData As Integer, iRow As Integer
Dim wbData As Workbook
On Error GoTo err_here

  iRow = wsCur.Cells(Rows.Count, 1).End(xlUp).Row
  wsCur.Range("A10:X" & iRow).ClearContents  '<----- Fails after this line

'Assume that file is already open
  Set wbData = Workbooks("qReport.xlsx")
  ... etc
err_here:
  Beep
End Sub

wsCur 是在调用子程序中分配的工作表。该代码准确地返回 iRow 作为 wsCur 上最后使用的行。另外,内容被清除......以便该行执行正常。它死后不会发出蜂鸣声。我在蜂鸣声上也有一个断点,但它从未被击中。

因此,正如我在输入问题时通常会发生的情况一样……我不断尝试,通常最终会在尝试完整记录我的问题时找到答案。这次结果还不错...我找不到任何原因,上面的代码现在可以工作...但是,我在 VBA 的其他部分仍然遇到与上面部分不相似的相同问题。我已经在这个项目上工作了大约一周,并且在今天之前的所有测试,该代码都有效......或者至少像通常预期的那样出错了。

每次调试器停止时,都不会出现错误和警告。失败的线路甚至没有任何共同点。所以我只能假设这是我的系统环境问题。

我已经搜索和谷歌搜索,但没有答案。我希望这里有人以前遇到过这个问题并解决了它,或者至少可以给我指出正确的方向。

我的代码编译没有错误。这是目前暂停的线路:

wsTemp.Delete

临时工作表被删除...然后停止。

EDIT:好吧,所以我认为这只是一个损坏的 Excel 文件,并进行“打开并修复”几个小时才解决了这个问题。但现在我遇到了同样的问题,调试器在之后失败

wsTemp.Delete

我打开了“工具”>“选项”>“常规”>“所有错误时中断”,但仍然没有收到任何错误,也没有警告...代码单步执行只是停止。

为了彻底...以下是直到故障点的整个过程:

'Creates combined joblist from last and current month
Sub CreateCompareList(wsCur As Worksheet, wsLast As Worksheet, wsComp As Worksheet)
Dim wsTemp As Worksheet
Dim lLastRow As Long, lCurRow As Long, lLMRow As Long
Dim iCol As Integer, x As Integer

  wsComp.Unprotect SheetPwd
  lLastRow = wsComp.Cells(Rows.Count, 27).End(xlUp).Row         'Get the last row
  If lLastRow = 9 Then
    'No data on sheet - Don't ruin headers
  Else
    wsComp.Rows("10:" & lLastRow).ClearContents                 'Clear that section of Job names and numbers
  End If
  Set wsTemp = Worksheets.Add                                   'Add a Temp Sheet to filter jobs

  lCurRow = wsCur.[A10].End(xlDown).Row                         'Get the last row
  wsCur.Range("A10:B" & lCurRow).Copy                           'Grab all jobs for the current month
  wsTemp.[A1].PasteSpecial                                      'Paste job list from Current Month
  Application.CutCopyMode = False

  lLMRow = wsLast.[A10].End(xlDown).Row                         'Get the last row
  wsLast.Range("A10:B" & lLMRow).Copy                           'Grab all jobs from the Last month
  lLastRow = wsTemp.[A1].End(xlDown).Row                        'Get the last row
  wsTemp.Cells(lLastRow + 1, 1).PasteSpecial                    'Paste jobs from last month below jobs from current month
  Application.CutCopyMode = False

  lLastRow = wsTemp.[A1].End(xlDown).Row                        'Get new last row
  'Filter out duplicates based on the JobNo
  wsTemp.Range("$A$1:$B$" & lLastRow).RemoveDuplicates Columns:=2, Header:=xlNo
  lLastRow = wsTemp.[A1].End(xlDown).Row                        'Get new last row
  wsTemp.Range("A1:B" & lLastRow).Copy                          'Copy unique Jobs

  wsComp.[A10].PasteSpecial                                     'Paste Unique Jobs to Compare sheet

'Clean up Temp sheet
'  Application.DisplayAlerts = False
  wsTemp.Delete

我已经尝试过打开和关闭 DisplayAlerts,当警报打开时...我收到警报,工作表上可能有数据...我单击删除,工作表被删除...然后代码停止。有时,像上面这样的其他 .ClearContents 行也会出现问题。


对这个问题的事后分析似乎得出这样的结论:这实际上是一个损坏的 Excel 文件。幸运的是,我最近也有一个备份。但是,为了节省在备份和损坏版本之间进行编码的时间,以下是我保存文件所采取的步骤,以防其他人遇到我所做的奇怪行为:

  1. 关闭所有 Excel 窗口并启动一个新实例而不打开文件。
  2. 使用 Ctrl+O 搜索文件...但不要只单击“打开”,而是单击向下箭头并选择“打开并修复”。
  3. 单击修复
  4. 保存为新副本*-已修复(只是因为)。

此后,文件按预期运行。 EOMONTH 函数中的循环引用消失了,调试器按预期运行。我已经对所有代码进行了全面测试,并且运行正常。

我无法解释它是如何损坏的,我想只是幸运。

See https://support.office.com/en-us/article/Repairing-a-corrupted-workbook-e5b49891-dde7-4796-b60a-49b0d2478a62 https://support.office.com/en-us/article/Repairing-a-corrupted-workbook-e5b49891-dde7-4796-b60a-49b0d2478a62处理损坏的 Excel 文件时的其他选项。

EDIT:这个问题再次出现,目前起作用的是强制 Windows 更新。系统设置为自动,但是当我手动去检查时,发现有3个Office更新。安装完这些之后,我再次运行 Windows Update 并发现了 .Net Framework 的另一个更新...所以我也这样做了...怀疑这是否有任何效果...但是...

所以...在使用 Excel 的“打开和修复”、应用更新并重新启动几次、打开所有错误的“中断”之后...我的代码终于可以再次正常工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel VBA 调试器停止,没有错误或警告 的相关文章

随机推荐

  • CouchDB 全文搜索

    我需要一些有关 couchdb 中全文搜索的指导 它是否已经在 2 0 中默认启用 或者我们是否必须重建 couchdb 才能启用它 设想 它是一个文档管理系统 文档以网格形式显示 我需要能够对结果进行排序 经过从地图减少到弹性索引的几次更
  • Django 中没有 TEMPLATE_CONTEXT_PROCESSORS

    我没有TEMPLATE CONTEXT PROCESSORS在我的默认设置中 TEMPLATE CONTEXT PROCESSORS django contrib auth context processors auth django co
  • “不知道该怎么办”nvcc 致命错误

    我在 Ubuntu 终端中使用命令行 我正在尝试编译 CUDA Compiler Driver NVCC pdf 中提供的三个文件 当我使用这 3 个文件的文档给出的命令行时 我确实收到以下错误 nvcc fatal 不知道如何处理 dc
  • 如何知道站点查询字符串的所有可能参数是什么?

    我想检查任何现有网站网址的所有可能参数是什么 假设该站点正在使用参数类型查询字符串 architecture 例如不是 MVC 如下所示 http www foobar com p1 itemsPerPage 50 size 500 假设还
  • 实模式 BIOS 例程和保护模式

    我正在做一些操作系统实验 到目前为止 我的所有代码都利用实模式 BIOS 中断来操作硬盘和软盘 但是一旦我的代码启用了CPU的保护模式 所有实模式BIOS中断服务程序将不可用 如何读写硬盘和软盘 我现在需要做一些硬件驱动程序吗 我该如何开始
  • 按重叠范围对行进行分组

    我有一个数据框 其中left列是对象最左边的位置 并且right列是最右边的位置 如果对象重叠 或者它们重叠重叠的对象 递归地 我需要对它们进行分组 因此 例如 如果这是我的数据框 left right 0 0 4 1 5 8 2 10 1
  • 如何在postgres中获取该月的最后一天?

    如何在postgres中找到该月的最后一天 我有一个日期列 存储为数字 18 格式为 YYYYMMDD 我正在尝试使用它来使其约会 to date act dt YYYYMMDD AS act date 然后找到该日期的最后一天 像这样 s
  • phonegap 相机 API 在捕获图像的攻击时不会触发 SuccessCallBack 方法

    我正在使用 Phonegap API 来捕获图像 一旦我拍照并附加它 我的成功回调方法就不会被调用 这是我的实现方式 我已将 Phonegap jar 文件添加到库中 并将其添加到构建路径中 在我的主活动中 它扩展了我指定的 DroidGa
  • 让员工全力进出? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我的表如下 id time stamp evenid 1001 2017 09 05 09 35 00 1 in 1002 2017 09
  • AttributeError:使用与后端无关的 GUID 类型时,“UUID”对象没有属性“替换”

    我想使用 SQLAlchemy 1 1 5 在 Postgresql 数据库中拥有一个 uuid 类型的主键 id 并使用 pg8000 适配器连接到数据库 我用的是与后端无关的 GUID 类型 recipe http docs sqlal
  • 开始使用云计算

    我对云计算非常陌生 我想知道我可以在云上使用 LAMP 堆栈开发一个网站吗 以及使用哪种云 有没有开源云可以使用它 有点 您可以使用桉树 http open eucalyptus com downloads使用 LAMP 堆栈开发可在 Am
  • 无论有没有管道,如何在 k 折交叉验证后提取重要特征?

    我想构建一个使用交叉验证的分类器 然后从每个折叠中提取重要的特征 系数 以便我可以查看它们的稳定性 目前我正在使用 cross validate 和管道 我想使用管道 以便我可以在每个折叠内进行功能选择和标准化 我被困在如何从每个折叠中提取
  • 托管 COM 聚合

    据我了解 构建一个聚合现有 COM 对象的 COM 对象意味着在外部对象的 IUnknown QueryInterface 方法中实现重定向逻辑 我的问题是 如果您正在构建的对象是托管的 该怎么做 在托管对象上 IUnknown 没有显式实
  • 使用 ConstructorInfo 调用构造函数的反射

    在如下所示的非常简单的课程中 class Program public Program int a int b int c Console WriteLine a Console WriteLine b Console WriteLine
  • 如何在Python中读取cookie

    我是 python cgi 脚本的新手 我想用Python读取cookie 我尝试了以下代码 from urllib2 import Request build opener HTTPCookieProcessor HTTPHandler
  • Silverlight 中的最大图像 Uri 长度

    有谁知道 Silverlight 中的最大 URL 长度是多少 如果重要的话 版本 4 我知道它是 2048 并且对于 Firefox 来说基本上是无限的 我测试过的两个环境 但是对于长 Uri 来说 图像请求会失败 任何人都知道这个神奇数
  • 有没有办法监控并记录最近启动了哪些应用程序?

    我想知道用户在过去 例如 24 小时内 启动了哪些应用程序 这可能吗 不 不可能 至少在没有大量低级工作的情况下不可能 Android 不会按原样保留应用程序的使用历史记录
  • 将 NSDate 与 [NSDate 日期] 进行比较

    我试图强制用户使用日期选择器选择将来的日期 我显然使用了compare 方法 但是 当我执行以下代码时 即使它与 NSDate date 相同的日期 它也会告诉执行if语句 这是我的代码 if datePicker date compare
  • Google App Engine 版本号?

    App Engine 版本号如何运作 它们只是整数吗 我可以使用浮标吗 我可以重复使用旧版本号吗 从手册中 http code google com appengine docs python config appconfig html R
  • Excel VBA 调试器停止,没有错误或警告

    在尝试测试一些代码时 我遇到了一个我不记得以前遇到过的问题 当我单步执行代码时 它在 ClearContents 行之后停止 没有错误 没有警告 什么也没有 Public Sub CreateCurMth wsCur As Workshee