VBA用户定义的类型未定义(仅在有时)

时间:2016-04-29 13:58:23

标签: excel vba excel-vba

在我的Excel工作簿有时中,我收到以下错误:

  

vba用户定义的类型未定义

我知道这通常意味着代码excel(VBA)中有一些类型不知道。

奇怪的是代码运行得非常好,编译时不会发生这种情况。

此错误有时会在Application.Calculate系列的所有方法和F9按键上随机出现。 并非总是有时候。

相同的行为有一条带有此描述的vbe错误消息:

  

visual basic module包含语法错误

当我点击调试时,它会落在application.calculate(full)上,如果我继续使用代码(使用F5),它会继续没有错误。

编辑: 有时,当我将此函数复制到另一个工作簿时,它会受到Userdefined类型错误的影响:

Option Explicit

Public Function MergeAreaValue(rng As Range) As String
On Error Resume Next

If rng.MergeCells = True Then
    MergeAreaValue = rng.MergeArea.Cells(1).Value2
Else
    MergeAreaValue = rng.Value2
End If

End Function

该函数从合并区域获取值。

EDIT2: 我的用户定义类型错误总是在计算时发生,但不会破坏它。工作簿仍然计算正常..消息很烦人。

1 个答案:

答案 0 :(得分:0)

我似乎 “有时” 是关键字。尝试反编译文件。以this为例。

多年来我使用它没有任何问题,但只有好处:) Excel没有内部反编译器作为Access / decompile。 别忘了自己备份,而不仅仅是工具:)