Excel 在 VBA 项目资源管理器中创建不存在的工作表

mec*_*r02 6 vba microsoft-excel microsoft-excel-2010

Excel 2010 Professional Plus (32bit) 似乎创建了一组新的工作表并重命名了 VBA 屏幕中的所有原始工作表,例如 Sheet10 变为 Sheet101,Sheet13 变为 Sheet131。这会导致 UDF 停止运行。“新”“sheet10”和“sheet13”似乎并不存在于 VBA 项目窗口中的任何地方。“新”工作表旁边有一个蓝色图标。

UDF 确实有效。直到创建这些新工作表并重命名旧工作表。Excel 文件中只有 12 个工作表和一个工作簿。VBA 项目显示 2 个工作簿和 20 个工作表。

1)是什么原因造成的?
2)我该如何解决?
3)如何预防?

左边的那些蓝色图标实际上并不存在 在此处输入图片说明

在此处输入图片说明

添加了显示“sheet3”不存在的属性和真实工作表“sheet31”的属性的图像。所有不存在的工作表和工作簿都有一长串属性。

Sheet3-不存在 Sheet31-存在

XLS 文件在这里 你必须下载它,因为它在谷歌的查看器中打开。

更新:2016 年 1 月 6 日 所以截至今天,当我打开这个 XLS 时,所有公式都是错误 (#VALUE)。Excel 没有创建我上次更新中看到的不存在的工作表。上周 XLS 和公式有效,我没有做任何更改。这是我按照以下帖子中的建议将所有工作表复制到的新工作簿。原始工作簿(图中显示的工作簿不存在工作表)没有 #VALUE 错误。两本工作簿位于同一台计算机上,并在过去一个月内一起更新以进行比较。

UPDATE3, 1/6/2016 我只是不小心移动了一个文本单元格,然后单击撤消,所有#VALUE 错误都消失了,我现在有了所有正确的计算。跆拳道。

jcb*_*rmu 2

问题的关键是消息框“自动化错误。灾难性故障”

没有单一的诊断方法,但它可能是......

  • 情况1

如果工作簿尝试运行的宏包含未包含在 VBA 编辑器的引用部分中的对象,则可能会发生此类错误。

例如,如果需要在PC上正确注册特定的DLL。如果这些 DLL 在您的电脑上,那么工作簿没问题,但在另一台没有 DLL 的电脑上,就会发生这种情况。

任何项目都将默认包含以下内容:

Visual Basic For Applications
Microsoft Excel x.0 Object Library
OLE Automation
Microsoft Office x.0 Object Library
and possibly if a form has ever been added -
Microsoft Forms 2.0 Object Library
Run Code Online (Sandbox Code Playgroud)

xExcel版本在哪里。

在这台电脑上运行宏之前,您是否在另一台电脑上打开并修改过该宏?

就是这样,引用已更新为其他系统的版本,并且在您的系统中找不到它们。

  • 案例2

您的 UDF 之一导致了该问题。重现问题并检查以黄色突出显示的功能。

与您发布的图片相符,则问题出在Sumbytext(rg as Range,ltr as String)as Double。你必须:

  • 逐步跟踪 UDF 逻辑以查找可能出现故障的位置。
  • 在命名范围“List_HolAbbr”中总是有值?哪个?
  • UDF 接收变量 的范围rg。始终是有效范围吗?
  • 既然它们使用整数值,为什么SumbytestMidResult被定义为 Double ?