我一直在创建一个包含各种VBA的.xlsm工作簿。它只是将来自其他两个工作簿的数据复制到表中,然后刷新基于这些表的数据透视表以更新主工作簿上的图表。以前我在不同的工作簿中做过的所有事情没有问题。在处理工作簿时,我自然打开,保存,然后在几天内多次关闭工作簿。
通常,现在我相信要完成的工作簿,它在开放时出现了一个小故障。最初我根本无法打开文件,因为它会立即崩溃。只有将文件保存到onedrive并再次下载,我才能保持文件打开以查看发生了什么(由于某种原因,这有效,我不知道为什么!)。
我立即怀疑VBA中有什么东西,所以一次按下Alt + F11,我就遇到了这个问题(上图)。
此图片中的所有蓝色Excel对象都不是由我创建的!
它们不包含任何代码,我似乎无法将它们作为常规Excel工作表打开。
我的问题是, 有没有人知道可能导致这种情况的原因是什么? 有没有人以前见过这个? 我从哪里开始调试呢?
尝试在工作簿中运行任何VBA会导致它立即崩溃。
我怀疑崩溃的VBA最多的是这些部分;
Public Function ThisWorkbookPath()
ThisWorkbookPath = ThisWorkbook.Path & Application.PathSeparator
End Function
传递给;
Public Function CheckPath(ByVal PathString As String) As Boolean
Application.Volatile (True)
If Strings.Right(PathString, 1) = "\" Then
CheckType = vbDirectory
Else
CheckType = vbNormal
End If
If Len(Dir(PathString, CheckType)) > 0 Then
CheckPath = True
Else
CheckPath = False
End If
End Function
这些都在工作簿中用作用户定义的函数,以便在尝试打开它们之前检查计算机上是否存在包含其他2个工作簿的文件夹。
ThisWorkbook现在是ThisWorkbook1,它可以解释为什么,正如工作簿中的论坛所计算的那样,它无法找到正确的路径而只是崩溃。
但这并没有解释这些额外物品的来源。
非常感谢任何帮助
答案 0 :(得分:0)
我在Office365上遇到了同样的问题,进行了代码审查,发现我使用相同的名称来表示公共常量和函数的参数。重命名参数并重新运行宏后,就再也没有发生。